USE pubs; GO
EXEC sp_fulltext_database 'enable'; GOEXEC sp_fulltext_catalog 'ft_titles', 'create'; GOEXEC sp_fulltext_table 'titles', 'create', 'ft_titles', 'UPKCL_titleidind'; GO
唯一索引名稱可用 sp_help titles 查詢。
EXEC sp_fulltext_column 'titles', 'title', 'add'; GO
EXEC sp_fulltext_column 'titles', 'notes', 'add'; GOEXEC sp_fulltext_table 'titles', 'activate'; GOEXEC sp_fulltext_catalog 'ft_titles', 'start_full'; GO-- CONTAINS: 精確詞彙/片語搜尋
SELECT title, notes FROM titles WHERE CONTAINS(title, '"computer Cooking"'); GO
-- FREETEXT: 語意/自然語言搜尋
SELECT title, notes FROM titles WHERE FREETEXT(title, 'computer Cooking'); GO
-- FREETEXT 加雙引號視為片語
SELECT title, notes FROM titles WHERE FREETEXT(title, '"computer Cooking"'); GO
-- 單一關鍵字
SELECT title, notes FROM titles WHERE CONTAINS(title, 'computer'); GO
-- 所有全文索引欄位搜尋 (*)
SELECT title, notes FROM titles WHERE FREETEXT(*, 'computer'); GO
| 特性 | CONTAINS | FREETEXT |
|---|---|---|
| 搜尋模式 | 精確詞彙、前置詞、近接、加權、布林邏輯 | 自然語言、詞幹分析、同義詞展開 |
| 片語搜尋 | 雙引號包裹 "phrase" | 直接輸入片語,或雙引號強制 |
| 效能 | 索引搜尋快 | 較耗資源 |
| 適用場景 | 結構化查詢、關鍵字精準比對 | 使用者自由文字輸入、模糊搜尋 |
全文檢索從啟用、建立目錄、定義表/欄位、填充索引到查詢應用,流程固定且需依序執行。掌握 CONTAINS 與 FREETEXT 差異,能根據應用需求選擇最適查詢方式,提升文字搜尋體驗。