How do the full text search systems of PostgreSQL and MySQL compare? Is any clearly better than the oder? In which way are they different?
6 回答
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 是一个文本字段。您可以专门为这些类型的搜索建立索引,当然它们可能比这个简单的示例更复杂。该功能非常可靠,值得您在做出决定时深入研究。
祝你好运。
如果您使用 Hibernate 作为 ORM,我强烈建议您使用 Hibernate 搜索。它建立在 Lucene 之上,因此速度非常快。
卡尔
我在使用 postgresql/tsearch2 方面有很好的经验,特别是因为它被引入了标准发行版(在 8.0 版之前 - 我认为 - 这是一个可选的 contrib 功能,升级到 tsearch2 需要做一些工作)。
如果我没记错的话,你必须在启动之前设置一些属性(模糊匹配,字典的东西),而在其他数据库上,这些东西是通过全文语法本身灵活地公开的(我在这里想到的是 Oracle Text,虽然我知道那不是与您的问题相关)。
我认为您可以将 Sphinx 与 MySQL 和 Postgres 一起使用。这是一篇解释如何将 Sphinx 与 MySQL 一起使用的文章(您可以将其添加为插件)
mysql全文搜索很慢。它不能处理超过 100 万的数据(每个查询几十秒)。
我没有使用 postgresql 全文搜索的经验。
我用过狮身人面像搜索。它非常快速且易于使用。但它不是那么强大。我的意思是搜索功能。例如,它不支持像'abc?',在哪里'?代表任何字符。
我也知道卢森。它很强大,但很难学习。