明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Microsoft SQL Server 全文索引服務

[摘要]SQL 7的全文檢索和Index Server的檢索方式非常類似。 Contains AND, OR, NOT 可以在Contains中很方便使用邏輯表達式 Example: Select username from member where contains(userinfo,'&quo...

SQL 7的全文檢索和Index Server的檢索方式非常類似。


Contains

AND, OR, NOT

可以在Contains中很方便使用邏輯表達式

Example:

Select username from member where contains(userinfo,'"作家" AND "木匠"')

Select username from member where contains(userinfo,'"作家" OR "木匠"')

Select username from member where contains(userinfo,'"作家" AND NOT "木匠"')

NEAR

這是一個在普通的邏輯表達式中沒有的關鍵字,意思是很簡單,就是說找到靠近的兩個詞

Example:

Select Content from MicrosoftRecord where contains(Content,'"比爾·蓋茨"
NEAR "保羅·艾倫"')

這就表示要找到全文中包含比爾·蓋茨和保羅·艾倫,并且兩個詞相隔不遠。

FORMSOF INFLECTIONAL

這個功能可以查找單詞的各種形式,比如過去式、復數(shù)、動詞形式、名詞形式等。可惜對中文沒什么用

Example:

SELECT ProductName FROM Products WHERE CONTAINS(ProductName,'FORMSOF (INFLECTIONAL, dry)')

*

這個功能可以查找單詞的前綴,不過對中文也沒有什么用處

Example:

SELECT ProductName FROM Products WHERE CONTAINS(ProductName, '"dis*"')

ISABOUT WEIGHT

這個功能可以給復合查詢時不同的條件以不同的權重,以決定返回的記錄集的順序

SELECT CategoryName, Description FROM Categories WHERE CONTAINS(Description, 'ISABOUT
spread weight (.8), sauces weight (.4), relishes weight (.2) )' )

權重的值可以從0.0到1.0

ContainsTable

它的使用方式和Contains基本相同,這里就不再重復介紹了。要提到的是它返回的是一張供你進一步查詢的表,而不是一個查詢條件。

FreeText

如果使用這種方式,那么查詢的時候會使用分詞技術來實現(xiàn)模糊查詢,并且過濾掉一些非關鍵詞,比較類似于Contains中的FORMSOF,可惜對中文也沒有什么支持

Example:

SELECT CategoryName FROM Categories WHERE FREETEXT (Description, 'sweetest candy bread and
dry meat' )

FreeTextTable

它和FreeText的差別就跟Contains和ContainsTable的差別一樣。(出處:熱點網絡)