16 sql-server full-text-search sql-server-2005 wildcard
我试图围绕如何搜索出现在单词/表达式中间的东西 - 比如搜索"LIKE%book%" - 但在SQL Server(2005)全文目录中.
我怎样才能做到这一点?在搜索表达式的开头几乎看起来好像两个CONTAINS并且FREETEXT真的不支持通配符- 真的可以吗?
CONTAINS
FREETEXT
我本以为FREETEXT(*, "book")会发现里面有"书"的东西,包括"重新预订"或类似的东西.
FREETEXT(*, "book")
Mit*_*eat 15
不幸的是CONTAINS只支持前缀通配符:
CONTAINS(*, '"book*"')
Tom*_*lak 7
SQL Server全文搜索基于将文本标记为单词.没有较小的单位作为单词,所以你可以寻找的最小的单词是单词.
您可以使用前缀搜索来查找以某些字符开头的匹配,这是可能的,因为单词列表按字母顺序保存,而服务器所要做的就是扫描列表以查找匹配项.
要做你想做的事情,带有LIKE '%book%'子句的查询可能会同样快(或慢).
LIKE '%book%'
Cra*_*aig 3
如果您想做一些认真的全文搜索,那么我会(并且已经)使用 Lucene.Net。除了基础知识之外,MS SQL 全文搜索似乎从来都不能很好地工作。
归档时间:
17 年,3 月 前
查看次数:
17274 次
最近记录:
12 年,1 月 前