微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

任何原因不使用PostgreSQL的内置全文搜索Heroku?

我准备在Heroku上部署一个需要全文搜索的Rails应用程序。到目前为止,我一直在使用MysqL与Sphinx VPS上运行它。

但是,如果我想在Heroku上使用Sphinx或Solr,我需要支付一个附加组件。

我注意到Postgresql(在Heroku使用的数据库)有内置的全文搜索能力。

有没有原因,我不能使用Postgres的全文搜索?它比Sphinx慢还是有其他一些主要的限制?

编辑,2016 – 为什么不是两个?

如果你对Postgres和Lucene感兴趣,为什么不呢?查看Postgres的ZomboDB扩展,它将Elasticsearch集成为第一类索引类型。仍然是一个相当早期的项目,但它看起来真的有希望我。

> https://github.com/zombodb/zombodb

(技术上不在Heroku上,但仍值得一看。)

披露:我是WebsolrBonsai Heroku附加组件的共同创始人,所以我的观点有点偏向卢塞恩。

我对Postgres全文搜索的看法是,它对于直接的用例是相当固定的,但有很多原因为什么Lucene(以及因此Solr和ElasticSearch)在性能功能方面都优越。

对于初学者,jpountz提供了一个真正优秀的技术答案的问题,Why is Solr so much faster than Postgres?这是值得一两读,真的消化。

我还评论一个recent RailsCast episode比较Postgres全文搜索与Solr的相对优缺点。让我在这里回顾一下:

Postgres的实用优势

>重复使用您已在运行的现有服务,而不是设置和维护(或支付)其他东西。
>远远优于异常缓慢的sql LIKE操作符。
>减少保持数据同步,因为它都在同一个数据库 – 没有应用程序级集成与一些外部数据服务API。

Solr(或ElasticSearch)的优点

在我的头顶,没有特定的顺序…

>单独缩放索引和搜索负载与常规数据库负载
>更灵活的术语分析,​​如语调标准化,语言词干,N-gram,标记移除…其他酷的功能,如拼写检查,“丰富的内容”(例如,PDF和Word)提取
> Solr / Lucene可以做的一切在Postgres full-text search TODO list只是罚款。
>更好和更快的术语相关性排名,在搜索时高效定制。
>对于常见字词或复杂查询搜索效果可能会更快。
>可能比Postgres更高效的索引性能
>通过从主数据存储区中分离索引,更好地适应数据模型中的更改

显然,我认为基于Lucene的专用搜索引擎是更好的选择。基本上,你可以认为Lucene是事实上的搜索专家的开源库。

但是如果你唯一的其他选项是LIKE运算符,那么Postgres全文搜索一个明确的胜利。

原文地址:https://www.jb51.cc/postgresql/193664.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐