2013-07-22 71 views
1

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

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

我感兴趣的是这些搜索更快,两者的优点和缺点。

谢谢。

回答

7

全文搜索有几个优点。

索引:

喜欢的东西:

WHERE Foo LIKE '%Bar'; 

不能采取指数的优势。它必须查看每一行,并查看它是否匹配。然而,全文索引可以。事实上,全文索引可以在匹配的话,那些话有多接近在一起的顺序方面提供了更大的灵活性等

词干:

一个全文搜索可以话。如果您搜索运行,则可以获得“跑”或“跑”的结果。大多数全文引擎具有各种语言的词典。

加权结果:

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

缺点:

甲全文索引可以潜在地比标准的B树索引较大巨大,多次。出于这个原因,许多提供数据库实例的托管提供商禁用此功能,或至少收取额外费用。例如,最后我检查了一下,Windows Azure不支持全文查询。

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

+0

感谢您的回答。这对我很有用。但我总是想知道全文搜索在后台如何工作。我需要的是一些参考资料来了解它。我想知道所有这些工作的模式。 – zajke

+0

这是一个很大的话题,它在SQL Server,Oracle,Postgres等方面有所不同。 –

+0

无论是SQL Server,Oracle还是Postgres,任何东西都会对我有所帮助。如果你知道一些参考资料,我会很感激。谢谢。 – zajke