Heroku Rails Websolr,sunspot在生产环境中不是免费的吗?

4
我在我的应用程序中添加了sunspot gem,并尝试将其发送到heroku上的生产环境,但我试图重新索引我的数据库,然而,我遇到了一个错误。我进行了更多的挖掘,我认为我必须添加websolr作为附加组件?这需要每月支付20美元。这是唯一的选择吗?谢谢。
4个回答

9

我是Websolr和Bonsai的创始人(Solr和Elasticsearch的Heroku插件)。

Rich的回答非常不错,但我不建议使用SQL LIKE操作符。性能无法扩展,您将不得不花费比预期更多的时间来获得基本的搜索功能。最终结果:浪费了很多时间,用户也不满意。

Postgres全文搜索是一个合理的替代方案,尽管随着您的搜索流量在生产中开始增长,术语分析和结果排名将会不如Solr/Elasticsearch。

您还可以考虑我们的姐妹服务Bonsai,它提供免费的入门计划。它使用Elasticsearch,这意味着您需要使用官方的Ruby Elasticsearch绑定而不是Sunspot。

最后,如果您已经在Heroku上运行了生产应用程序,欢迎在您的帐户中创建多个索引,并与您的staging/qa和其他应用程序共享这些索引。


谢谢你的回答!我一定会研究其他选择! - hellomello
@Nick Zadrozny - 是我一个人还是Bonsai和Websolr都没有免费计划了? - Stephane Maarek
@Stephane:Websolr从未提供免费计划;Bonsai则推出了不同版本的免费/沙盒/试用模式,可能还会有更多。请发送电子邮件至info@bonsai.io,我很乐意为您提供延长试用期的服务。 - Nick Zadrozny

8
我进行了更多的研究,发现如果您不想选择websolr路径,还有其他选项。这些答案对于一些见解很好,但并没有提供可用的替代方案。
对于仍在寻找的人,我建议看看Elastic Search Rails Cast也有一个很好的教程 使用heroku,可以考虑Bonsai,它为用户提供免费选项。
希望这个答案能帮助那些也寻求与solr一起使用sunspot gem以外的其他选项的人。

感谢提及,安德鲁。我是Websolr和Bonsai的创始人。我现在的建议是,除非您知道自己需要特定的搜索引擎(如Solr),否则最好从Elasticsearch开始。我们在Bonsai上提供免费计划,专门帮助初学者学习。 - Nick Zadrozny

2
"

Solr on Heroku使用他们自己的附加组件,起价为每月20美元:

"

enter image description here

虽然我不知道为什么它需要预付费,并且没有像其他Heroku插件那样的“试用”选项,但有某些方法可以解决这个问题。

全文搜索

全文搜索是您正在执行的操作,而Solr是一种工具,可以使这个过程更加高效。尽管成本相当昂贵,但您可以根据您的数据库在Heroku上使用全文搜索:

MYSQL

要在MYSQL上执行全文搜索,您可以使用"LIKE"运算符和%variable%作为您的搜索短语,就像这样:

SELECT * FROM `table` WHERE `name` LIKE `%benjamin%`

这基本上会找到所有名称列中包含“benjamin”的记录。这非常慢。
POSTGRESQL
PostgreSQL在全文搜索方面提供了更强大的功能,但仍然相当缓慢且昂贵。您可以在此处阅读更多信息,但是使用Rails,您可以使用一堆gem来完成此任务。
我们最近在此处使用了一个名为textacular的gem:http://firststop.herokuapp.com 以下是我们用于它的代码:
    #Search
    def self.search(search)
        basic_search(name: search, description: search)
    end

更多阅读
您可以在此处了解全文搜索的工作原理:在Heroku上为什么不使用内置的PostgreSQL全文搜索? 如果您只是建立应用程序基础,我建议您使用该方法。之后,您可以升级到更专业的解决方案,例如Solr等。
这里有...

这里有一个相当不错的答案,除了 SQL LIKE 之外,我非常不建议使用。在中期最好选择 Postgres 全文搜索。 - Nick Zadrozny

1
如果您想使用Heroku平台,它可以免费开始,但几乎每个插件,额外的工人,额外的存储,搜索引擎,后台任务等都需要付费。
对于每月20美元,您也可以获得一个不错的VPS,但您必须自己安装和管理该服务器。
至于在Heroku上使用sunspot / solr,我认为您无法免费做到这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接