全文搜索与标准数据库搜索

时间:2013-07-22 20:24:04

标签: database search full-text-search

我想知道全文搜索(在文件中搜索数据)和标准数据库搜索(LIKE,IN等)之间有什么区别。

我在这里注意到,在文件中没有数据类型,但在数据库中,您可以为特定数据定义数据类型。

我对哪种搜索更快以及两者的优缺点感兴趣。

感谢。

1 个答案:

答案 0 :(得分:10)

全文搜索有一些优势。

<强>索引:

类似的东西:

WHERE Foo LIKE '%Bar';

无法利用索引。它必须查看每一行,看它是否匹配。但是,全文索引可以。实际上,全文索引可以在匹配单词的顺序,这些单词的接近程度等方面提供更大的灵活性等。

<强>词干:

全文搜索可以字。如果您搜索 run ,则可以获得“run”或“running”的结果。大多数全文引擎都有各种语言的词典。

加权结果:

全文索引可以包含多个列。例如,您可以搜索“桃饼”,索引可以包含标题,关键字和正文。与标题匹配的结果可以加权更高,更相关,并且可以排序以显示在顶部附近。

<强>缺点:

全文索引可能巨大,比标准B-TREE索引大许多倍。出于这个原因,许多托管提供商提供数据库实例禁用此功能,或至少为此收取额外费用。例如,我上次检查过,Windows Azure不支持全文查询。

全文索引的更新速度也可能较慢。如果数据变化很大,则与标准索引相比可能会有一些滞后更新索引。