8

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?

4

6 回答 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');

其中 body 是一个文本字段。您可以专门为这些类型的搜索建立索引,当然它们可能比这个简单的示例更复杂。该功能非常可靠,值得您在做出决定时深入研究。

祝你好运。

于 2008-09-29T03:39:48.290 回答
5

更新:从 MySQL 5.6 开始,InnoDB支持全文搜索

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

经常推出的两个流行的替代方案是Lucene(如果您使用 PHP,则它是一个带有 Zend 模块的 apache 项目)和Sphinx

于 2008-09-26T21:15:31.223 回答
2

如果您使用 Hibernate 作为 ORM,我强烈建议您使用 Hibernate 搜索。它建立在 Lucene 之上,因此速度非常快。

卡尔

于 2009-05-01T08:58:21.050 回答
1

我在使用 postgresql/tsearch2 方面有很好的经验,特别是因为它被引入了标准发行版(在 8.0 版之前 - 我认为 - 这是一个可选的 contrib 功能,升级到 tsearch2 需要做一些工作)。

如果我没记错的话,你必须在启动之前设置一些属性(模糊匹配,字典的东西),而在其他数据库上,这些东西是通过全文语法本身灵活地公开的(我在这里想到的是 Oracle Text,虽然我知道那不是与您的问题相关)。

于 2009-09-23T14:31:18.737 回答
0

我认为您可以将 Sphinx 与 MySQL 和 Postgres 一起使用。这是一篇解释如何将 Sphinx 与 MySQL 一起使用的文章(您可以将其添加为插件)

于 2008-09-27T13:25:53.497 回答
0

mysql全文搜索很慢。它不能处理超过 100 万的数据(每个查询几十秒)。

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

我用过狮身人面像搜索。它非常快速且易于使用。但它不是那么强大。我的意思是搜索功能。例如,它不支持像'abc?',在哪里'?代表任何字符。

我也知道卢森。它很强大,但很难学习。

于 2009-11-17T09:25:55.637 回答