0

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

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

我正在 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在我的程序中使用搜索,因为它返回更多命中(收集更多数据),但速度是一个重要问题。

谢谢您的帮助!

4

1 回答 1

0

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

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

于 2014-02-18T17:48:35.277 回答