SQL Server的全文索引與LIKE謂詞截然不同:全文查詢依特定語言語言規則拆解詞彙與片語,支援語意搜尋;而LIKE僅做字元模式比對。面對百萬筆非結構化文本,LIKE查詢可能耗時數分鐘,全文檢索則只需秒級響應。
可對char、varchar、nvarchar建立全文索引,也支援varbinary(max)、image等二進位格式(如Word文檔)。前置條件:目標資料表必須擁有唯一且非空的欄位(通常為主鍵)。
CREATE FULLTEXT CATALOG DocumentCatalog AS DEFAULT
一個目錄可包含多個全文索引,但每個索引僅屬於一個目錄。每個資料庫可建立多個目錄,AS DEFAULT指定為預設目錄。
CREATE UNIQUE INDEX T_DocumentsContent_VerID ON T_DocumentsContent(VerID)
通常以主鍵作為唯一非叢集索引,強制欄位值唯一。
CREATE FULLTEXT INDEX ON T_DocumentsContent(DOCUCONTENT TYPE COLUMN ExtendedName)
KEY INDEX T_DocumentsContent_VerID ON DocumentCatalog
WITH CHANGE_TRACKING AUTO
NO POPULATION需配合OFF使用,建立後不填充,需手動ALTER FULLTEXT INDEX ... START FULL/INCREMENTAL POPULATION觸發需啟動SQL Server FullText Search服務。SQL Express版本不支援全文索引。