一、建立全文索引
1、使用ssms
2、使用t-sql
create fulltext index on production.productdescription (description) key index
pk_productdescription_productdescriptionid on awcatalog with change_tracking auto;
二、填充全文索引
1、使用ssms
2、使用t-sql
alter fulltext index on production.productdescription start full population;
三、查詢
1、freetext函式
select productdescriptionid, description from production.productdescription
where freetext(description, n'bike');
2、freetexttable函式
select * from freetexttable(production.productdescription, description, n'bike')
上述查詢僅返兩個列:key、rank 。
通常使用下述查詢:
select pd.productdescriptionid, pd.description, keytable.[key], keytable.rank
from production.productdescription as pd
inner join freetexttable (production.productdescription, description, n'bike')
as keytable on pd.productdescriptionid = keytable.[key];
3、contains函式
-- 查詢完全匹配「bike」的所有行:
select productdescriptionid, description from production.productdescription
where contains(description, n'bike');
-- 查詢完全匹配「bike」的行和包含「bike」字首的所有詞的行:
select productdescriptionid, description from production.productdescription
where contains(description, n'"bike*"');
-- inflectional會使搜尋處理搜尋中的詞幹,例如,「drive」與「drove」、「driven」、「driving」匹配
select productdescriptionid, description from production.productdescription
where contains(description, n' formsof (inflectional,ride) ');
-- thesaurus會匹配同義詞,例如,「metal」會匹配「gold」、「aluminum」、「steel」等
select productdescriptionid, description from production.productdescription
where contains(description, n' formsof (thesaurus,metal) ');
注意:所有的詞表檔案安裝時都為空。要使用詞表匹配,必須填充這些檔案。所有詞表檔案都是xml檔案,位於預設的sql server安裝路徑下的ftdata資料夾。
-- 還可以給特殊的搜尋選項指派相對權重
select productdescriptionid, description from production.productdescription
where contains(description, 'isabout (mountain weight (.8), bike weight (.2) ) ');
4、containstable函式
containstable函式與contains函式的功能一樣。然而,像freetexttable一樣,它返回行集值(其中包含rank和key列),這兩列可以用來返回最匹配的項。
SQL Server 全文索引
一 建立全文索引 1 使用ssms 2 使用t sql create fulltext index on production.productdescription description key index pk productdescription productdescriptionid on...
SQL Server 全文索引
一 建立全文索引 1 使用ssms 2 使用t sql create fulltext index on production.productdescription description key index pk productdescription productdescriptionid on...
sql server 全文索引
以犧牲空間來換取時間的 sql full text 具體的實現方案如下所示 1 在sql指令碼中完成full text的建立 假設我將users表中的loginname欄位 nvarchar 與displayname欄位 nvarchar sites表中的properties欄位 xml 加入到fu...