SQL Server 7.0 內置全文檢索服務,對 varchar/char/text 字段模糊匹配性能較 LIKE 提升 10 倍+,支持命中率排序與高級語義搜索。
-- 1. 創建全文目錄
CREATE FULLTEXT CATALOG ft_catalog AS DEFAULT;
-- 2. 創建全文索引 (需唯一索引鍵 pk_id)
CREATE FULLTEXT INDEX ON dbo.articles (title, content LANGUAGE 1033) -- 1033=English, 2052=Chinese
KEY INDEX pk_id ON ft_catalog
WITH CHANGE_TRACKING AUTO; -- 自動跟蹤變更 (或 MANUAL 手動)
-- 3. 手動填充
ALTER FULLTEXT INDEX ON dbo.articles START FULL POPULATION;
-- 4. 全文搜索查詢
SELECT title, rank
FROM dbo.articles
WHERE CONTAINS(content, 'SQL Server')
ORDER BY rank DESC;
-- 5. 模糊/近似搜索
SELECT * FROM dbo.articles WHERE FREETEXT(content, 'database performance tuning');
| 維度 | 建議 |
|---|---|
| 語言選擇 | 正確指定 LANGUAGE (中文 2052),影響斷詞器與詞幹提取器 |
| 更新策略 | 高寫入場景用 CHANGE_TRACKING AUTO + 定期 REORGANIZE;低寫入用手動排程 |
| 索引碎片整理 | ALTER FULLTEXT INDEX ON table REORGANIZE 合併碎片提升查詢速度 |
| 停用詞表 | 自定義停用詞過濾無意義詞 (的/了/在),減小索引體積 |
| 查詢優化 | 優先 CONTAINS 精確匹配,FREETEXT 語義搜索較慢 |