SQL Server 全文索引

2021-09-03 04:34:21 字數 2353 閱讀 3833

一、建立全文索引

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...