SQL7的全文檢索和IndexServer的檢索方式非常類似。
Contains
AND,OR,NOT
可以在Contains中很方便使用邏輯表達式
Example:
Selectusernamefrommemberwherecontains(userinfo,'"作家"AND"木匠"')
Selectusernamefrommemberwherecontains(userinfo,'"作家"OR"木匠"')
Selectusernamefrommemberwherecontains(userinfo,'"作家"ANDNOT"木匠"')
NEAR
這是一個在普通的邏輯表達式中沒有的關鍵字,意思是很簡單,就是說找到靠近的兩個詞
Example:
SelectContentfromMicrosoftRecordwherecontains(Content,'"比爾·蓋茨"NEAR"保羅·艾倫"')
這就表示要找到全文中包含比爾·蓋茨和保羅·艾倫,并且兩個詞相隔不遠。
FORMSOFINFLECTIONAL
這個功能可以查找單詞的各種形式,比如過去式、復數、動詞形式、名詞形式等。可惜對中文沒什么用
Example:
SELECTProductNameFROMProductsWHERECONTAINS(ProductName,'FORMSOF(INFLECTIONAL,dry)')
*
這個功能可以查找單詞的前綴,不過對中文也沒有什么用處
Example:
SELECTProductNameFROMProductsWHERECONTAINS(ProductName,'"dis*"')
ISABOUTWEIGHT
這個功能可以給復合查詢時不同的條件以不同的權重,以決定返回的記錄集的順序
SELECTCategoryName,DescriptionFROMCategoriesWHERECONTAINS(Description,'ISABOUTspreadweight(.8),saucesweight(.4),relishesweight(.2))')
權重的值可以從0.0到1.0
ContainsTable
它的使用方式和Contains基本相同,這里就不再重復介紹了。要提到的是它返回的是一張供你進一步查詢的表,而不是一個查詢條件。
FreeText
如果使用這種方式,那么查詢的時候會使用分詞技術來實現模糊查詢,并且過濾掉一些非關鍵詞,比較類似于Contains中的FORMSOF,可惜對中文也沒有什么支持
Example:
SELECTCategoryNameFROMCategoriesWHEREFREETEXT(Description,'sweetestcandybreadanddrymeat')
FreeTextTable
它和FreeText的差別就跟Contains和ContainsTable的差別一樣。