PostgreSQL和MySQL的全文搜索系统有何区别?它们中有哪一个更好?它们在哪些方面不同?
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');
其中body是一个文本字段。您可以专门为这些类型的搜索建立索引,当然它们可以变得比这个简单的示例更复杂。该功能非常稳定,值得深入研究,以便在做出决策时使用。
祝你好运。
我在postgresql/tsearch2方面有着非常好的经验,特别是自从它被纳入标准发行版(在8.0版本之前 - 我想 - 它是一个可选的contrib功能,并且升级到tsearch2需要一些工作)。
如果我记得正确,你必须在启动之前设置一些属性(模糊匹配、字典等),而在其他数据库中,这些东西通过全文本语法本身灵活地暴露出来(我在想Oracle Text,在这里,尽管我知道这与你的问题无关)。
MySQL全文搜索非常慢。它无法处理超过100万条数据(每个查询需要几十秒)。
我没有使用postgresql全文搜索的经验。
我使用过sphinxsearch。它非常快速且易于使用。但它并不是非常强大。我的意思是,它不支持像“abc?”这样的搜索,其中“?”代表任意字符。
我也了解lucene。它很强大,但学习难度较大。
我认为你可以在MySQL和Postgres上都使用Sphinx。 这里有一篇文章讲解如何在MySQL中使用Sphinx(你可以将其作为插件添加)