【问题标题】:SQL Full-Text Search vs. LIKE Search PerformanceSQL 全文搜索与 LIKE 搜索性能
【发布时间】:2014-02-18 17:36:47
【问题描述】:

我一直在互联网上搜索,发现全文搜索通常具有更好的性能。

我按照this post 上的说明在我的机器上设置了词库表,这样我就可以使用它并更加熟悉全文搜索。

我正在 Microsoft SQL Server Management Studio 2008 中查看所有内容。

当我运行查询时。我注意到我的 LIKE 搜索比我的 FREETEXT 搜索更快,这与我在大多数 wiki 站点/页面上找到的结果相矛盾。

以下是我运行的查询:

select *
from TheThesaurus
where freetext(TheDefinition, 'aspire')

select *
from TheThesaurus
where TheDefinition like '%aspire%'

LIKE 搜索耗时 0 秒,FREETEXT 搜索耗时 6 秒。

LIKE 搜索返回 70 行,FREETEXT 搜索返回 94,这使得 FREETEXT 搜索更准确,结果更好。

我缺少什么导致FREETEXT 搜索比 LIKE 搜索慢吗?

我真的很想在我的程序中使用 FREETEXT 搜索,因为它会返回更多命中(收集更多数据),但速度是一个重要问题。

感谢您的帮助!

【问题讨论】:

  • 你看执行计划了吗?
  • 试试UPDATE STATISTICS TheThesaurus

标签: sql performance search full-text-search freetext


【解决方案1】:

您是否创建了全文索引?如果没有,请参阅 MSDN 站点上的 CREATE FULLTEXT CATALOG 或此链接使用 SQL 2008 http://www.codeproject.com/Articles/29237/SQL-SERVER-2008-Creating-Full-Text-Catalog-and-Ful 引导您完成它

运行时间不同的另一个原因与谓词的作用有关。 LIKE 更接近精确匹配。 FREETEXT 函数“搜索与短语含义匹配的值,而不仅仅是精确的单词”,因此您的 FREETEXT 命令可以完成更多工作。那是来自“Querying Microsoft SQL Server 2012”

【讨论】:

    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 2023-03-16
    • 2011-03-03
    • 2018-02-03
    • 2013-04-21
    • 2011-09-21
    • 2011-08-03
    • 1970-01-01
    相关资源
    最近更新 更多