我想知道全文搜索(搜索文件中的数据)和标准数据库搜索(LIKE、IN 等)之间的区别。
我在这里注意到,在文件中您没有数据类型,但在数据库中您可以为特定数据定义数据类型。
我感兴趣的是哪种搜索速度更快,两者的优缺点是什么。
谢谢。
最佳答案
全文搜索有几个优点。
索引:
类似于:
WHERE Foo LIKE '%Bar';
无法利用索引。它必须查看每一行,看看它是否匹配。但是,全文索引可以。事实上,全文索引可以在匹配词的顺序、这些词之间的距离等方面提供更大的灵 active 。
词干提取:
全文搜索可以词干 词。如果您搜索run,您可以获得“ran”或“running”的结果。大多数全文引擎都有各种语言的词干词典。
加权结果:
全文索引可以包含多个列。例如,您可以搜索“peach pie”,索引可以包括标题、关键字和正文。与标题匹配的结果可以加权更高,因为更相关,并且可以排序显示在顶部附近。
缺点:
全文索引可能巨大,比标准 B-TREE 索引大很多倍。出于这个原因,许多提供数据库实例的托管提供商禁用此功能,或者至少为此收取额外费用。例如,上次我检查时,Windows Azure 不支持全文查询。
全文索引的更新速度也较慢。如果数据变化很大,与标准索引相比,更新索引可能会有一些滞后。
关于database - 全文搜索与标准数据库搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17796717/