在SQL Server數據庫中可以使用全文索引,與僅適用於字符模式的 LIKE 謂詞不同,全文查詢將根據特定語言的規則對詞和短語進行操作,從而針對此數據執行語言搜索。
對大量非結構化的文本數據進行查詢時,使用全文搜索獲得的性能優勢會得到充分的表現。對數百萬行文本數據執行的 LIKE 查詢可能需要花費幾分鐘時間才能返回結果;但對同樣的數據,全文查詢只需要幾秒或更少的時間,具體取決於返回的行數。
可以對包含 char、varchar 和 nvarchar 數據的列創建全文索引。也可以對包含格式化二進制數據(如存儲在 varbinary(max) 或 image 列中的 Microsoft Word 文檔)的列創建全文索引。不能使用 LIKE 謂詞來查詢格式化的二進制數據。若要對一個表創建全文索引,該表必須具有一個唯一且非空的列。
下面是創建全文檢索的步驟
1、首先創建一個全文目錄,一個全文目錄可以包含多個全文索引,但一個全文索引只能用於構成一個全文目錄。每個數據庫可以不包含全文目錄或包含多個全文目錄。as default參數表明把此全文目錄作為默認的全文目錄。
Create fulltext catalog DocumentCatalog as default
2、然後創建唯一非聚集索引。
create unique index T_DocumentsContent_VerID on T_DocumentsContent(VerID)
這個一般把你要全文索引的表上的主鍵作為唯一非聚集索引。該索引將強制插入列中的數據具有唯一性。一般都是主鍵符合這個要求。
3、最後一步就是創建全文索引
Create FULLTEXT INDEX ON T_DocumentsContent(DOCUCONTENT TYPE COLUMN ExtendedName)
key index T_DocumentsContent_VerID on DocumentCatalog
with change_tracking auto
當然如果需要使用全文索引需要把全文索引服務啟動,就是SQL Server FullText Search這個服務。注意Sql Express版本不能使用全文索引。