2013-10-02 59 views
1

我第一次使用SQL自由文本搜索,我有點困惑爲什麼它的行爲如此。SQL server freetexttable partial words

我有觸點,這些用戶可以搜索的表,我使用

SELECT Contacts.*, [Rank] 
FROM 
FREETEXTTABLE (Contacts, *, 'O''Roarty') AS Contact1_ftt 
JOIN Contacts ON Contacts.ContactID = Contact1_ftt.[Key] 

返回2分的結果對人的「O'Roarty」作爲自己的姓氏。但是,如果我搜索「Roarty」,我根本得不到結果。如果我搜索「Dave」,我會得到相同的結果,但「Dav」沒有結果。

它看起來像部分單詞不起作用。有沒有辦法啓用部分單詞匹配?

回答

0

第一件事全文搜索不支持後綴搜索。所以你不能使用"*ave"進行搜索。第二關於使用LIKELIKEFTS的工作方式不同。查看here瞭解更多詳情。

0

此MSDN問題/回答更好地解釋了功能比我可以,所以我只會link it here

如果你想要部分詞匹配,你基本上想要使用CONTAINSTABLE

+0

這使我可以像「Dav *」一樣返回以「Dav」開頭的任何內容,包括「Dave」,但不能執行「* ave」,因爲*只能在最後使用。另外,它會要求用戶在我知道他們不知道的UI上輸入這個字符串作爲他們的搜索字符串,或者在發送給SQL之前編寫一個函數來格式化字符串。似乎LIKE聲明可能更適合這一點。 – Jammy