4

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

谢谢

4

4 回答 4

9

Websolr + Bonsai 的创始人在这里(Solr 和 Elasticsearch 的 Heroku 插件)。

Rich 的回答非常可靠,但我不推荐使用 SQL LIKE 运算符。性能无法扩展,并且您可能会花费比预期更多的时间来维持基线搜索功能。最终结果:花费大量时间,用户不满意。

Postgres 全文搜索是一个合理的选择,尽管与 Solr/Elasticsearch 相比,随着您的搜索流量在生产环境中开始增长,术语分析和结果排名将有所欠缺。

您也可以考虑我们的姊妹服务 Bonsai,它提供免费的 Starter 计划。它使用 Elasticsearch,这意味着您希望使用 Elasticsearch 的官方 Ruby 绑定而不是 Sunspot。

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

于 2014-01-15T21:01:57.993 回答
8

我进行了更多研究,发现如果您不想采用 websolr 路径,还有其他选择。这些其他答案对某些见解很有用,但不能替代可以使用的方法。

对于一些仍在寻找的人,我建议看看Elastic Search

Rails Cast 对此也有很好的教程。

要将其与 heroku 一起使用,请查看Bonsai,它为用户提供了免费选项。

希望这个答案能帮助那些也在寻求其他选择的人,而不是使用太阳黑子宝石和 solr

于 2013-10-30T20:43:29.577 回答
2

Heroku 上的 Solr使用他们自己的插件,起价为下午 20 美元:

在此处输入图像描述

虽然我不知道它为什么要预先付费,并且没有像许多其他 Heroku 附加组件那样的“试用”选项,但有一些方法可以解决它


全文搜索

全文搜索是您正在执行的操作,而 Solr 是一种使该过程更加高效的工具。尽管数据库非常昂贵,但您可以使用 Heroku 进行全文搜索,具体取决于您的数据库:

MYSQL

要在 MYSQL 上执行全文搜索,您可以简单地使用带有 %variable% 作为搜索短语的“LIKE”运算符,如下所示:

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 等形式的更专用的解决方案

这里是

于 2013-10-30T09:19:31.020 回答
1

如果你想使用 Heroku 平台,它是免费开始的,但你必须为几乎所有的附加组件、额外的工作人员、额外的存储空间、搜索引擎、后台任务付费。

每月 20 美元,您也可以获得一个不错的 VPS,但您必须自己安装和管理该服务器。

至于 Heroku 上的太阳黑子/solr,我认为您不能免费这样做。

于 2013-10-30T08:59:03.263 回答