PostgreSQL和MySQL的全文搜索

问题描述 投票:8回答:6

如何比较PostgreSQL和MySQL的全文本搜索系统?有没有明显比奇特更好的东西?它们在哪些方面有所不同?

mysql postgresql search full-text-search
6个回答
7
投票

PostgreSQL 8.3内置了全文搜索,它是“ tsearch2”的集成版本

这里是文档:http://www.postgresql.org/docs/8.3/static/textsearch.html

以及文档中的示例:

SELECT title
FROM pgweb
WHERE to_tsvector(body) @@ to_tsquery('friend');

正文是文本字段。您可以为这些类型的搜索专门建立索引,当然,与这个简单示例相比,它们会变得更加复杂。该功能非常可靠,值得您做出决定。

祝你好运。


5
投票

更新:从MySQL 5.6,InnoDB supports fulltext search]开始>

不幸的是,我对PostgreSQL并不了解,但是如果您在MySQL中使用FULL TEXT搜索,则会立即与MyISAM绑定。如果您想使用InnoDB(并且ACID合规性对您来说意味着什么,那么您应该使用InnoDB)将使您无法使用其他解决方案。

[经常使用的两个流行替代方法是Lucene(如果使用PHP,则是带有Zend模块的apache项目)和Sphinx


2
投票

如果您将Hibernate用作ORM,我强烈建议您使用Hibernate搜索。它基于Lucene构建,因此速度超快。


1
投票

我在postgresql / tsearch2上有相当不错的经验,特别是因为它已被纳入标准发行版中(在8.0版之前-我认为-这是一个可选的贡献功能,升级到tsearch2需要一些工作)。 >

如果我没记错的话,您必须在启动之前设置一些属性(模糊匹配,字典内容),而在其他数据库上,这些内容可以通过全文语法本身灵活地公开(我在这里考虑的是Oracle Text,尽管我知道与您的问题无关)。


0
投票

我认为您可以将Sphinx与MySQL和Postgres一起使用。这是an article,用于说明如何在MySQL中使用Sphinx(可以将其添加为插件)


0
投票

MySQL全文搜索非常慢。它处理的数据不能超过一百万(每个查询需要几十秒)。

我没有使用postgresql全文搜索的经验。

© www.soinside.com 2019 - 2024. All rights reserved.