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

SQL Server 2000 全文檢索功能完整建置與查詢指南

     編輯:關於SqlServer

建置步驟

  1. 企業管理器展開資料庫,右鍵資料表 (如 Products) > 全文索引資料表 > 在資料表上定義全文索引。
  2. 全文索引精靈:選擇需全文檢索的欄位 (如 ProductName, QuantityPerUnit)。
  3. 建立/選擇全文目錄 (如 proCatalog),暫不設定填充排程。
  4. 完成精靈後,右鍵全文目錄 proCatalog > 啟動完整填充。

Transact-SQL 全文查詢語法

CONTAINS:精確/前綴/鄰近/加權搜尋

-- ProductName 同時包含以 c 開頭與以 b 開頭的字詞
SELECT * FROM Products
WHERE CONTAINS(ProductName, '"c*" AND "b*"');

-- 多欄位搜尋
SELECT * FROM Products
WHERE CONTAINS((ProductName, QuantityPerUnit), 'chai');

FREETEXT:自然語言/字幹/同義詞搜尋

-- ProductName 包含 chai、chang、tofu 任一字詞 (字幹擴展)
SELECT * FROM Products
WHERE FREETEXT(ProductName, 'chai chang tofu');

資料表值函數:CONTAINSTABLE / FREETEXTTABLE

-- 回傳符合條件的鍵值與等級 (RANK)
SELECT P.*, K.RANK
FROM Products P
JOIN CONTAINSTABLE(Products, ProductName, 'ISABOUT("chai" WEIGHT(0.8), "chang" WEIGHT(0.2))') K
  ON P.ProductID = K.[KEY]
ORDER BY K.RANK DESC;

系統預存程序對應

功能預存程序
啟用資料庫全文sp_fulltext_database 'enable'
建立全文目錄sp_fulltext_catalog 'proCatalog', 'create'
註冊資料表sp_fulltext_table 'Products', 'create', 'proCatalog', 'PK_Products'
指定欄位sp_fulltext_column 'Products', 'ProductName', 'add'
啟動填充sp_fulltext_catalog 'proCatalog', 'start_full'

架構與運作原理

  • 全文索引儲存於檔案系統,由 Microsoft Search Service (MSSearch) 管理,不在資料庫內。
  • 查詢流程:SQL 關聯引擎驗證語法 → 全文提供者轉換條件 → MSSearch 查詢支援組件檢索索引 → 回傳鍵值與 RANK → 關聯引擎結合關聯資料產生結果集。
  • 支援 char/varchar/nvarchar/text/image (含 Office/HTML 文件,需指定型別欄位)。
  • 每個資料表僅能有一個全文索引,歸屬單一全文目錄;每個資料庫可有多個全文目錄,伺服器上限 256 個。

管理層級與最佳實務

  • 伺服器:設定 resource_usage 控制系統資源佔用。
  • 資料庫:啟用全文功能後可建立目錄元資料。
  • 全文目錄:依資料變更頻率分組資料表,設定填充排程 (完整/增量/排程)。
  • 資料表/欄位:變更定義後需重新填充同步。
  • 填充屬非同步背景程序,建議離峰時段執行完整填充,平時用增量填充。

版本注意

SQL Server Personal Edition 不包含 Microsoft Search Service,無法使用全文檢索;但用戶端連接 Standard/Enterprise Edition 可正常使用。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved