我试图围绕如何搜索出现在单词/表达式中间的东西 - 比如搜索"LIKE%book%" - 但在SQL Server(2005)全文目录中.
我怎样才能做到这一点?在搜索表达式的开头几乎看起来好像两个CONTAINS
并且FREETEXT
真的不支持通配符- 真的可以吗?
我本以为FREETEXT(*, "book")
会发现里面有"书"的东西,包括"重新预订"或类似的东西.
不幸的是CONTAINS只支持前缀通配符:
CONTAINS(*, '"book*"')
SQL Server全文搜索基于将文本标记为单词.没有较小的单位作为单词,所以你可以寻找的最小的单词是单词.
您可以使用前缀搜索来查找以某些字符开头的匹配,这是可能的,因为单词列表按字母顺序保存,而服务器所要做的就是扫描列表以查找匹配项.
要做你想做的事情,带有LIKE '%book%'
子句的查询可能会同样快(或慢).