1

我已将我的应用程序推送到 heroku,但我的搜索功能存在功能问题。我将 ElasticSearch 与 Tire 以及 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.

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

4

1 回答 1

1

哦,太酷了——我实际上是第一个回答问题的人。所以我认为潜在的问题是,虽然轮胎确实会自动创建索引,但它在生产环境中并没有这样做。如果您按照 Bonsai 上 Heroku 页面上的说明进行操作,您的生产索引的名称将与您的开发索引不同。所以你的生产索引不会包含文件,因为它还没有被轮胎设置。

对我有用的解决方案在Config Tire 上进行了描述,以与 Bonsai ElasticSearch Heroku 插件一起使用

heroku run rake environment tire:import CLASS=School FORCE=true

变量的值CLASS当然是模型的名称,而不是School.

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

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

这是对什么是“搜索索引”高度概括——从这里开始阅读这篇关于搜索索引的 Wikipedia 文章,了解非结构化全文搜索的精彩世界!

于 2013-10-04T20:25:57.643 回答