Northwind 資料庫 → 資料表 → 右鍵 Products → 全文索引 → 在資料表上定義全文索引。ProductID)。ProductName, QuantityPerUnit。proCatalog。proCatalog。右鍵 proCatalog → 啟動完整填充 → 系統提示「全文目錄填充成功啟動」。填充完成後方可查詢。
| 查詢類型 | T-SQL 範例 | 說明 |
|---|---|---|
| CONTAINS 精確/前綴/邏輯 | SELECT * FROM Products WHERE CONTAINS(ProductName, '"C*" AND "B*"') | 雙引號包字詞,* 前綴萬用字元,AND/OR/NOT/NEAR 邏輯 |
| FREETEXT 自由文字 | SELECT * FROM Products WHERE FREETEXT(ProductName, 'Chai Chang Tofu') | 自動詞幹擴展、同義詞、語言感知,適合使用者自然語言輸入 |
| CONTAINSTABLE 排名分數 | SELECT p.*, ft.RANK FROM Products p JOIN CONTAINSTABLE(Products, ProductName, 'Chai') ft ON p.ProductID = ft.[KEY] ORDER BY ft.RANK DESC | 回傳 KEY + RANK (0-1000),可依相關性排序 |
| FREETEXTTABLE 同理 | SELECT p.*, ft.RANK FROM Products p JOIN FREETEXTTABLE(Products, ProductName, 'chinese tea') ft ON p.ProductID = ft.[KEY] | 自由文字查詢的資料表值函數版本 |
sp_fulltext_database、sp_fulltext_catalog、sp_fulltext_table、sp_fulltext_column。使用 SqlCommand 執行上述 CONTAINS/FREETEXT 查詢,綁定至 GridView/Repeater,快速構建企業級全文搜尋頁面。注意參數化:WHERE CONTAINS(ProductName, @Term),@Term 需包含雙引號與萬用字元 (如 @Term = "\"Chai*\"")。
SQL Server 2000 全文搜尋雖為舊世代功能,但架構清晰、語法強大,至今仍支援至 SQL Server 2019。掌握目錄建立、填充策略與四大查詢述詞,即可為應用加入專業級文字搜尋能力。