6

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

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

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

谢谢。

4

1 回答 1

19

全文搜索有几个优点。

索引:

就像是:

WHERE Foo LIKE '%Bar';

无法利用索引。它必须查看每一行,看看它是否匹配。但是,全文索引可以。事实上,全文索引可以在匹配单词的顺序、这些单词之间的距离等方面提供更多的灵活性。

词干:

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

加权结果:

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

缺点:

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

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

于 2013-07-22T20:31:07.647 回答