SQL Server 是否仅在查询中包含 CONTAINS 时才查看其全文目录?还是它也会针对 LIKE 查询执行此操作?
背景:我们的应用程序过去使用 SQL Server 中的全文目录和 CONTAINS 查询进行全文搜索。去年我们改用 Lucene,现在我们自己进行所有索引。因此我们不再依赖全文目录(事实上我们已将其删除)。
一位客户声称他们打开了 SQL Server 中的全文索引,现在我们的应用程序返回了之前没有的查询结果。使用 CONTAINS 子句对我们的数据库运行的 SQL 查询绝对为零,所以我只是想验证这是唯一导致 SQL Server 查看全文目录的 SQL 子句。
答案1
全文搜索将仅针对全文搜索查询(CONTAINS、CONTAINSTABLE、FREETEXTTABLE、FREETEXT)访问目录。LIKE 永远不会查阅全文索引。
http://msdn.microsoft.com/en-us/library/cc879300.aspx
你们自己测试过所报告的行为吗?
答案2
如果感兴趣的话,请观看这个视频教程,其中深入讲解了 FULLTEXT 搜索以及 LIKE 谓词和命中 FT 目录的谓词(如 FREETEXT 和 CONTAINS)之间的区别。
视频 - 全文搜索 URL 简介 -http://wtv.watchtechvideos.com/topic231.html