我正在构建一个将托管在 Heroku 上的 Rails 3 应用程序。
为了实现全文搜索,这些是我遇到的免费替代方案:
我的应用程序将是数据密集型的,需要大量读写。搜索也将被大量使用。
搜索将跨越不同的模型。
就性能和扩展性而言,哪一个是最好的?
还有其他免费和更好的选择吗?
改用 IndexTank 或 WebSolr(Heroku推荐的)会更好吗?
提前致谢!
我正在构建一个将托管在 Heroku 上的 Rails 3 应用程序。
为了实现全文搜索,这些是我遇到的免费替代方案:
我的应用程序将是数据密集型的,需要大量读写。搜索也将被大量使用。
搜索将跨越不同的模型。
就性能和扩展性而言,哪一个是最好的?
还有其他免费和更好的选择吗?
改用 IndexTank 或 WebSolr(Heroku推荐的)会更好吗?
提前致谢!
你试过 PgSearch https://github.com/Casecommons/pg_search吗?由于 heroku 使用 pg,因此您实际上可以免费获得全文搜索,并且 PgSearch 构建了利用 PostgreSQL 全文搜索的命名范围。
您可以使用 PostgreSQL 的内置全文搜索,但这很痛苦,但是有诸如 pg_search 之类的 gem 可以使它更容易,但是那个有一些严重的问题,但我已经找到了简单的解决方法。有关详细信息,请参阅https://docs.google.com/presentation/d/1NbN0kJMJsSQW2N7ItNMB6VuM_lJok-Xb0epk0anbRIo(我的闪电演讲幻灯片,标题为“免费在 Heroku 上进行全文搜索”)。
我会推荐使用 WebSolr。它是一个基于 Apache Solr 的企业级搜索系统,可以毫不费力地处理数百万个索引文档。此外,Solr 允许您为您的数据定义一个定制的结构,而不是强迫您进行简单的 FULLTEXT 搜索。它提供了额外的功能,例如分面搜索和拼写更正。
如果您不想为 Solr 付费,您可以自己托管,因为它是开源的:http: //lucene.apache.org/solr/
关于您提到的替代方案,如果您正在进行大量搜索,我不会使用任何依赖于您的应用程序数据库的东西来进行全文搜索 - 这是一个非常业余的解决方案,无法扩展。