SQL全文搜索与LIKE搜索性能

时间:2014-02-18 17:36:48

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

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

我按照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搜索,因为它会返回更多匹配(收集更多数据),但速度是一个重要问题。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

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