2009-10-23 66 views
1

如果我使用像「%魚油%」返回SQL自由文本,喜歡

水瓶金魚FLAKES

以下,但如果我使用包含([說明]「‘魚*’」),它是不是有我能做的事情?

基本上我想返回任何在任何地方都有魚的詞。

回答

4

什麼

CONTAINS([Description], '"fish"') 

FREETEXT([Description], 'fish') 

這是否給你什麼?

SQL Server全文索引不支持搜索帶有前導通配符的表達式,例如,你不能去CONTAINS([Description], '"*fish*"')或類似的東西:-(

你也可以做的是定義你自己的同義詞全文搜索,例如定義「金魚」是「魚」的同義詞 - 比你應該能夠搜索只是「魚」,也找到了「金魚」

SELECT (list of fields) FROM YourTable 
WHERE CONTAINS([Description], 'FORMSOF(THESAURUS, fish)') 

退房Understanding Full-Text Indexing in SQL Server - 。有一個很好的部分有點消沉文章在修改全文詞庫

馬克