基礎語法
SELECT * FROM table_name WHERE CONTAINS(fulltext_column, 'search_condition');
七大查詢模式實戰
| 需求 | CONTAINS 參數 | 說明 |
| 單字精確匹配 | 'beijing' | 單詞需單引號 |
| 詞組匹配 | '"HEIBEI province"' | 詞組雙引號包裹在單引號內 |
| 邏輯組合 | '"HEIBEI province" OR beijing' | 支援 AND、AND NOT、OR |
| 鄰近搜尋 | 'nanjing NEAR road' | 匹配 "nanjing road"、"nanjing east road" 等 |
| 前綴搜尋 | '"hu*"' | 匹配 hubei、hunan 等,**用 * 非 %** |
| 加權查詢 | 'ISABOUT (city WEIGHT(.8), county WEIGHT(.4))' | 權重 0~1,影響排名分數 |
| 詞形變化 | 'FORMSOF (INFLECTIONAL, street)' | 匹配 street、streets;動詞匹配不同時態 |
重要限制
- 中文斷詞需安裝對應斷字器,範例均以英文示範
- 全文索引需先建立:
CREATE FULLTEXT CATALOG ...; CREATE FULLTEXT INDEX ON table(col) KEY INDEX pk_name;
CONTAINS 僅可用於 WHERE,不可用於 SELECT 列表
進階:FREETEXT vs CONTAINS
FREETEXT:自然語言查詢,自動拆詞/同義詞擴展,精度較低
CONTAINS:精確語法控制,適合結構化搜尋需求