我在我的应用程序中添加了sunspot gem,并尝试将其发送到heroku上的生产环境,但我试图重新索引我的数据库,然而,我遇到了一个错误。我进行了更多的挖掘,我认为我必须添加websolr作为附加组件?这需要每月支付20美元。这是唯一的选择吗?谢谢。
我是Websolr和Bonsai的创始人(Solr和Elasticsearch的Heroku插件)。
Rich的回答非常不错,但我不建议使用SQL LIKE操作符。性能无法扩展,您将不得不花费比预期更多的时间来获得基本的搜索功能。最终结果:浪费了很多时间,用户也不满意。
Postgres全文搜索是一个合理的替代方案,尽管随着您的搜索流量在生产中开始增长,术语分析和结果排名将会不如Solr/Elasticsearch。
您还可以考虑我们的姐妹服务Bonsai,它提供免费的入门计划。它使用Elasticsearch,这意味着您需要使用官方的Ruby Elasticsearch绑定而不是Sunspot。
最后,如果您已经在Heroku上运行了生产应用程序,欢迎在您的帐户中创建多个索引,并与您的staging/qa和其他应用程序共享这些索引。
Solr on Heroku使用他们自己的附加组件,起价为每月20美元:
"全文搜索是您正在执行的操作,而Solr是一种工具,可以使这个过程更加高效。尽管成本相当昂贵,但您可以根据您的数据库在Heroku上使用全文搜索:
MYSQL
要在MYSQL上执行全文搜索,您可以使用"LIKE"运算符和%variable%作为您的搜索短语,就像这样:
SELECT * FROM `table` WHERE `name` LIKE `%benjamin%`
#Search
def self.search(search)
basic_search(name: search, description: search)
end