所以我使用SQL全文本搜索,从我读到的CONTAINS返回字符附近的一致,而FREETEXT返回具有相似意义的单词,但是我找不到任何验证这个的例子. 无论如何,到目前为止,我正在一个表上使用全文搜
无论如何,到目前为止,我正在一个表上使用全文搜索,其中描述字段最多为2500个字符,并希望在此使用FTS.这个描述将包含食物的成分,什么是最好使用,CONTAINS或FREETEXT?我想要我的用户搜索是一样的:
蛋糕糖的食谱
它应该返回排名最高的结果,最好的是FREETEXT还是CONTAIN?
我认为FREETEXT是你要找的.这是一个很好的比较两个选项:
http://www.sitepoint.com/blogs/2006/12/06/sql-server-full-text-search-protips-part-2-contains-vs-freetext/
如果您使用CONTAINS,则WHERE将变得复杂,因此您无法直接传递用户在搜索表单中输入的内容:
WHERE CONTAINS(notes, 'FORMSOF(INFLECTIONAL, recipe) or FORMSOF(INFLECTIONAL, cuisine)')
但是,如果您使用FREETEXT,您可以在以下位置直接指定“搜索表单”:
WHERE FREETEXT(notes, 'recipe for cake sugar')
我会说CONTAINS是有用的,如果你想搜索一些程序构建查询的东西,因为它更强大,你有更多的控制.另一方面,当您想要使用您的用户在简单语法中指定的查询“google样式”(只有单词)进行搜索时,FREETEXT很有用.