我想知道全文搜索(搜索文件中的数据)和标准数据库搜索(LIKE、IN 等)之间有什么区别。
我在这里注意到的是,在文件中没有数据类型,但在数据库中您可以为特定数据定义数据类型。
我感兴趣的是哪种搜索更快以及两者的优缺点是什么。
Thanks.
全文搜索有一些优点。
索引:
就像是:
WHERE Foo LIKE '%Bar';
无法利用索引。它必须查看每一行,看看是否匹配。然而,全文索引可以。事实上,全文索引在匹配单词的顺序、这些单词的接近程度等方面可以提供更大的灵活性。
词干提取:
全文搜索可以stem字。如果您搜索run,您可以获得“ran”或“running”的结果。大多数全文引擎都有多种语言的词干词典。
加权结果:
全文索引可以包含多个列。例如,您可以搜索“peach pie”,索引可以包括标题、关键字和正文。与标题相符的结果可以是weighted更高,因为更相关,并且可以排序以显示在顶部附近。
缺点:
全文索引可能是huge,比标准 B-TREE 索引大很多倍。因此,许多提供数据库实例的托管提供商disable这个功能,或者至少要额外收费。例如,我上次检查时,Windows Azure 不支持全文查询。
全文索引的更新速度也可能较慢。如果数据变化较大,与标准索引相比,更新索引可能会存在一些滞后。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)