如何比较PostgreSQL和MySQL的全文本搜索系统?有没有明显比奇特更好的东西?它们在哪些方面有所不同?
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');
正文是文本字段。您可以为这些类型的搜索专门建立索引,当然,与这个简单示例相比,它们会变得更加复杂。该功能非常可靠,值得您做出决定。
祝你好运。
更新:从MySQL 5.6,InnoDB supports fulltext search]开始>
不幸的是,我对PostgreSQL并不了解,但是如果您在MySQL中使用FULL TEXT搜索,则会立即与MyISAM绑定。如果您想使用InnoDB(并且ACID合规性对您来说意味着什么,那么您应该使用InnoDB)将使您无法使用其他解决方案。
如果您将Hibernate用作ORM,我强烈建议您使用Hibernate搜索。它基于Lucene构建,因此速度超快。
我在postgresql / tsearch2上有相当不错的经验,特别是因为它已被纳入标准发行版中(在8.0版之前-我认为-这是一个可选的贡献功能,升级到tsearch2需要一些工作)。 >
如果我没记错的话,您必须在启动之前设置一些属性(模糊匹配,字典内容),而在其他数据库上,这些内容可以通过全文语法本身灵活地公开(我在这里考虑的是Oracle Text,尽管我知道与您的问题无关)。
我认为您可以将Sphinx与MySQL和Postgres一起使用。这是an article,用于说明如何在MySQL中使用Sphinx(可以将其添加为插件)
MySQL全文搜索非常慢。它处理的数据不能超过一百万(每个查询需要几十秒)。
我没有使用postgresql全文搜索的经验。