当查询中有 CONTAINS 时,SQL Server 是否只查看其全文目录?或者它也会为 LIKE 查询这样做吗?
背景:我们的应用程序曾经使用 SQL Server 中的全文目录和 CONTAINS 查询来进行全文搜索。去年我们切换到 Lucene,现在我们自己做所有的索引。所以我们不再依赖全文目录(实际上我们删除了它)。
一位客户声称他们在 SQL Server 中打开了全文索引,现在我们的应用正在返回以前没有的查询命中。使用 CONTAINS 子句对我们的数据库运行绝对为零的 sql 查询,所以我只是想验证这是导致 SQL Server 查看全文目录的唯一 SQL 子句。
全文搜索将只针对全文搜索查询(CONTAINS、CONTAINSTABLE、FREETEXTTABLE、FREETEXT)访问目录。LIKE 永远不会查阅全文索引。
http://msdn.microsoft.com/en-us/library/cc879300.aspx
您是否自己测试过报告的行为?
如果有兴趣,请查看此视频教程,该教程深入解释了 FULLTEXT 搜索以及 LIKE 谓词与命中 FT 目录的谓词(如 FREETEXT 和 CONTAINS)之间的区别。
视频 - 全文搜索 URL 简介 - http://wtv.watchtechvideos.com/topic231.html