首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 匯入與全文檢索索引 Microsoft Word 文件完整指南

     編輯:關於SqlServer

匯入 Word 文件至 SQL Server

前提:資料表需含 image 或 varbinary(max) (SQL 2005+) 欄位儲存二進位內容。

方法一:textcopy.exe 命令列工具 (舊版相容)

textcopy /S server /D db /U user /P pwd /T table /C column /W "WHERE id=1" /F "C:\doc.doc" /I

/I 為匯入,/O 為匯出。執行 textcopy /? 取得完整參數說明。

方法二:ADO Stream 物件 (程式化、靈活)

' VBScript/ASP 範例
Set stream = CreateObject("ADODB.Stream")
stream.Type = 1 ' adTypeBinary
stream.Open
stream.LoadFromFile "C:\doc.doc"

Set cmd = CreateObject("ADODB.Command")
cmd.ActiveConnection = conn
cmd.CommandText = "UPDATE Docs SET Content = ? WHERE ID = 1"
cmd.Parameters.Append cmd.CreateParameter("Content", 128, 1, stream.Size, stream.Read) ' adLongVarBinary
cmd.Execute

參考 PSS 文件「使用 ADO Stream 物件存取和修改 SQL Server BLOB 資料」。

方法三:直接二進位資料移動 (高效能、部分更新)

適用於僅需更新文件片段、控制格式、或儲存位元遮罩等標記。參考 PSS「使用 ADO 擷取和更新 SQL Server 文字欄位」與 SQL Server 2000 範例碼 (...Samples\ado\Visual Basic\Employee 中的 FillDataFields 函數)。

全文檢索索引 Word 文件

SQL Server 7.0/2000 內建全文檢索服務,支援 image/varbinary(max) 欄位索引。

設定步驟

  1. 啟用全文檢索服務 (SQL Server 服務管理器)。
  2. 建立全文檢索目錄:sp_fulltext_catalog 'DocCatalog', 'create'。
  3. 建立全文檢索索引:指定資料表、欄位、語言、變更追蹤模式。
  4. 關鍵:指定文件類型 (.doc) 與對應的 篩斷器。Office 安裝會註冊 offfilt.dll 解析 Word 文件。
  5. 啟動填入:sp_fulltext_table 'Docs', 'start_full'。

查詢語法

SELECT * FROM Docs WHERE FREETEXT(Content, '關鍵字')
-- 或精確片語
SELECT * FROM Docs WHERE CONTAINS(Content, '"完整片語"')

進階:擷取關鍵字建立關聯表 (全文檢索不自動產生關鍵字表)

  1. OLE 自動化讀取使用者自訂屬性:Word 文件內建 Keywords 屬性,匯入時同步寫入關聯表。
  2. 另存為文字檔再分析:OLE 自動化開啟 Word → SaveAs wdFormatText → 自訂「斷詞器」遍歷文字 → 統計詞頻 → 存入關聯表。
  3. 全文檢索搜尋特定關鍵字:CONTAINS(Content, '關鍵字') → 將命中文件的關鍵字記錄至關聯表。

SQL Server 2005+ 增強

  • 原生 varbinary(max) 取代 image。
  • 全文檢索整合於資料庫引擎,無需獨立服務,支援 FILESTREAM 儲存大型文件於檔案系統。
  • 內建 sys.dm_fts_index_keywords 等 DMV 直接查詢索引關鍵字。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved