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

SQL Server 2005 全文檢索快速入門與範例

     編輯:SQL Server 2005

啟用全文檢索功能

-- 檢查資料庫是否已啟用全文檢索 (1=已啟用)
SELECT DATABASEPROPERTY('資料庫名', 'IsFulltextEnabled')

-- 啟用/停用全文檢索
EXEC sp_fulltext_database 'enable'
EXEC sp_fulltext_database 'disable'

建立全文目錄與索引

-- 建立全文目錄
CREATE FULLTEXT CATALOG 目錄名
-- 刪除目錄:DROP FULLTEXT CATALOG 目錄名

-- 建立全文索引(前提:表需有唯一索引)
CREATE FULLTEXT INDEX ON 表名 (欄位1, 欄位2, ...)
KEY INDEX 唯一索引名 ON 目錄名
-- 刪除索引:DROP FULLTEXT INDEX ON 表名

全文查詢語法

CONTAINS:精確/前綴/近義詞搜尋

SELECT * FROM 表名
WHERE CONTAINS(欄位名, '"202*" OR "2*"')
  • 支援布林運算子:AND, OR, AND NOT
  • 支援前綴:* 代表任意字元
  • 支援近似搜尋:FORMSOF(FREETEXT, '關鍵字')

FREETEXT:自然語言搜尋

SELECT * FROM 表名
WHERE FREETEXT(欄位名, '"202*" AND "2*"')
  • 自動進行斷詞、詞幹分析、同義詞展開
  • 適合使用者自由輸入的搜尋框
  • 不支援布林邏輯,將整個字串視為語意查詢

CONTAINS vs FREETEXT 差異比較

特性CONTAINSFREETEXT
查詢模式精確/結構化自然語言/模糊
布林邏輯支援不支援
前綴搜尋支援 (*)不支援
近義詞/詞幹需明確指定 FORMSOF自動展開
適用場景後台管理、精確篩選前台使用者搜尋框

維護與效能

  • 全文索引為非同步填滿,可設定 CHANGE_TRACKING AUTO 自動追蹤變更。
  • 定期執行 ALTER FULLTEXT INDEX ON 表名 REORGANIZE 整理碎片。
  • 監控 sys.dm_fts_index_population 觀察填滿狀態。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved