前言
SQL Server 7.0 內建全文檢索服務,對 varchar/char/text 欄位模糊比對速度比 LIKE 快 10 倍以上,並支援相關性排名。本文詳述安裝、啟用與建立索引完整流程。
安裝需知
- 包含於 SQL Server 7.0 完整版,**Desktop 版無效**
- 安裝時需選擇 Custom Installation 勾選
- 服務名稱:企業管理員顯示 Full-text Search,服務控制管理員顯示 Microsoft Search
啟用服務
- 企業管理員 → 支援服務 → Full-text Search → 右鍵「啟動」
- 或服務控制管理員 → Microsoft Search → 啟動
建立全文索引前置條件
- 資料表**必須有唯一索引** (Primary Key 或 Unique Constraint)
- 建立全文索引後,**無法變更資料表結構** (增刪欄位),需先移除全文索引
建立全文索引精靈步驟
- 企業管理員 → 展開資料庫 → 資料表 → 右鍵「全文索引資料表」→「定義全文索引」
- 啟動 SQL Server Full-Text Index 精靈
- 選擇**唯一索引鍵欄位** (作為文件識別碼)
- 選擇要建立索引的**文字欄位** (char/varchar/text/ntext 等)
- 選擇/建立 **Full-Text Catalog** (儲存索引的實體目錄)
- 設定**更新索引排程** (全文索引不自動更新,必須排程)
- 完成精靈
- 企業管理員 → Full-text Catalogs → 右鍵新建 Catalog →「開始完整擴展」
關鍵設定細節
Catalog 管理
- 一個資料庫可有多個 Catalog
- Catalog 實體為檔案系統目錄,建議置於非系統碟、非資料檔碟
- 定期備份 Catalog 目錄 (含全文索引資料)
更新排程策略
| 模式 | 適用場景 | 排程建議 |
| 完整擴展 | 初始建立、大量異動後、索引損毀修復 | 離峰時段每週/每月一次 |
| 增量擴展 | 一般異動擷取 | 每小時/每 30 分鐘 |
| 變更追蹤 | 即時性要求高 | 背景持續追蹤 (資源較大) |
查詢驗證
-- 基本查詢
SELECT * FROM table_name WHERE CONTAINS(column_name, '關鍵字');
-- 進階語法請參考「全文檢索進階程式設計」文件
常見問題排除
- 服務未啟動 → 檢查 Microsoft Search 服務狀態
- 查詢無結果 → 確認 Catalog 已擴展完成、欄位已納入索引
- 中文斷詞異常 → 確認安裝中文斷詞器、檢查登錄機碼設定
- 效能不佳 → 檢查 Catalog 碎片、考慮分散至多個 Catalog