我已将我的应用推送到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会自动创建索引。说实话,我对这些索引是什么有点不清楚。它们与我的开发数据库中的索引相同吗?是否有人知道有关使用这些功能部署应用程序的良好指南或教程?提前谢谢!
答案 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
。
回答你的第二个问题 - “这些索引是什么” - 它们是搜索索引,其功能与数据库索引类似,但是
这是“搜索索引”的非常高级摘要 - 启动here on this Wikipedia article on search indexing以了解非结构化全文搜索的精彩世界!