使用elasticsearch,盆景将rails app部署到heroku

时间:2013-10-02 23:09:35

标签: ruby-on-rails heroku elasticsearch tire

我已将我的应用推送到heroku,而且我的搜索功能存在功能问题。我正在使用Tlastic的ElasticSearch,以及Heroku的Bonsai插件。我根据Bonsai的文档创建了一个bonsai.rb初始化程序:https://devcenter.heroku.com/articles/bonsai#installing-the-add-on

到目前为止看起来像这样:

ENV['ELASTICSEARCH_URL'] = ENV['BONSAI_URL']

这是我尝试运行搜索时从Heroku日志中获得的错误:

Tire::Search::SearchRequestFailed (404 : {"error":"Index not found, and lazy index creation is disabled.

我以为Tire会自动创建索引。说实话,我对这些索引是什么有点不清楚。它们与我的开发数据库中的索引相同吗?是否有人知道有关使用这些功能部署应用程序的良好指南或教程?提前谢谢!

1 个答案:

答案 0 :(得分:1)

哦,多酷啊 - 我真的是第一个回答问题的人。所以我认为潜在的问题是,虽然Tire确实自动创建了索引,但它并没有在生产环境中这样做。如果您按照Bonsai上Heroku页面上的说明操作,您的生产索引的命名将与您的开发索引不同。因此,您的生产索引将不包含文档,因为Tire尚未设置它。

对我有用的解决方案在Config Tire to work with Bonsai ElasticSearch Heroku add-on

中有所描述
heroku run rake environment tire:import CLASS=School FORCE=true

CLASS变量的值将是您模型的名称,当然不是School

回答你的第二个问题 - “这些索引是什么” - 它们是搜索索引,其功能与数据库索引类似,但是

  • 存储在Bonsai的服务器上
  • 的架构允许基于关键字的快速检索“非结构化内容”

这是“搜索索引”的非常高级摘要 - 启动here on this Wikipedia article on search indexing以了解非结构化全文搜索的精彩世界!