%book%的全文目录/索引搜索

16 sql-server full-text-search sql-server-2005 wildcard

我试图围绕如何搜索出现在单词/表达式中间的东西 - 比如搜索"LIKE%book%" - 但在SQL Server(2005)全文目录中.

我怎样才能做到这一点?在搜索表达式的开头几乎看起来好像两个CONTAINS并且FREETEXT真的不支持通配符- 真的可以吗?

我本以为FREETEXT(*, "book")会发现里面有"书"的东西,包括"重新预订"或类似的东西.

Mit*_*eat 15

不幸的是CONTAINS只支持前缀通配符:

CONTAINS(*, '"book*"')
Run Code Online (Sandbox Code Playgroud)


Tom*_*lak 7

SQL Server全文搜索基于将文本标记为单词.没有较小的单位作为单词,所以你可以寻找的最小的单词是单词.

您可以使用前缀搜索来查找以某些字符开头的匹配,这是可能的,因为单词列表按字母顺序保存,而服务器所要做的就是扫描列表以查找匹配项.

要做你想做的事情,带有LIKE '%book%'子句的查询可能会同样快(或慢).


Cra*_*aig 3

如果您想做一些认真的全文搜索,那么我会(并且已经)使用 Lucene.Net。除了基础知识之外,MS SQL 全文搜索似乎从来都不能很好地工作。