前言
將 Word 文件匯入 SQL Server 並建立全文索引,可讓關聯式查詢涵蓋文件內容。核心步驟:建立 `image` 欄位 → 匯入二進位資料 → 啟用全文檢索服務 → 設定篩選器。
方法一:textcopy.exe 命令列工具
最簡單的批次匯入方式:
textcopy /S server /D db /T table /C column /W "where id=1" /F doc.doc /I
- 需先在資料表建立 `image` 型別欄位
- 執行 `textcopy /?` 參閱完整參數說明
方法二:ADO Stream 物件程式化匯入
適用於應用程式整合:
- 參考 Microsoft 知識庫文件:「使用 ADO Stream 物件存取與修改 SQL Server BLOB 資料」
- 範例碼展示如何將檔案串流寫入 `image` 欄位
方法三:二進位資料分塊移動——大型文件高效能寫入
若只需寫入文件特定區段(如位元遮罩、標記位):
- 使用 `AppendChunk` / `GetChunk` 分塊讀寫
- 減少磁碟 I/O,速度遠超 ADO Stream
- SQL Server 2000 範例碼路徑:
`<安裝碟>\Program Files\Microsoft SQL Server\80\Tools\DevTools\Samples\ado\Visual Basic\Samples\Employee\FillDataFields()`
全文檢索設定關鍵步驟
- 安裝/啟用 全文檢索服務(SQL Server 7.0/2000 內建)
- 建立全文檢索目錄與索引,指定 `image` 欄位
- 關鍵:在索引定義中指定文件類型為 `.doc`,系統會自動載入 Microsoft Office 篩選器
- 參考《SQL Server 線上叢書》全文檢索主題與 David Jones 文章「建置更好的搜尋引擎」
進階:擷取關鍵字建立關聯式索引
全文索引不會自動產生關鍵字關聯表,若需結構化查詢可採:
- OLE 自動化讀取文件內建關鍵字屬性 → 寫入關聯表
- OLE 自動化另存為純文字 → 自訂「斷詞器」統計詞頻 → 建立關鍵字表
- 全文搜尋特定關鍵字 → 回寫關聯表