Searchbox Elasticsearch Heroku没有结果

时间:2013-12-01 10:10:22

标签: ruby-on-rails heroku elasticsearch

我在heroku上有一个生产应用程序,带有搜索框插件。

在我的控制器中我有:

 # GET /venues
  # GET /venues.json
  def index
    @supplier = Supplier.find(current_user.profileable_id)
    @venues = @supplier.venues
  end

在我的模特中:

 include Tire::Model::Search
  include Tire::Model::Callbacks
  index_name("#{Rails.env}")

在我的生产环境中.rb:

 # Elastic search - Searchbox
  ENV['ELASTICSEARCH_URL'] = ENV['SEARCHBOX_URL']

根据文件,这应该是我所需要的。但是,插件不会自动创建索引或映射。没有这两个,heroku日志显示400错误,表明没有索引,它应该。如果我添加一个名为'production'的索引(基于上面的#{Rails.env}),那么它不会抛出任何错误,但是没有搜索结果。如果我然后要求Saerchbox对网站URL进行抓取,它会进行一些映射,但是不正确(我知道这是因为我们在heroku上的其他地方运行的应用程序的另一个实例,具有相同的设置并且它工作正常,即创建它是自己的索引和映射。)

我错过了什么?我是否需要一个我错过某处创建索引的heroku run命令?

1 个答案:

答案 0 :(得分:0)

好的,解决了。我需要运行这个rake:

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

在这种情况下,Venue是我正在编制索引的模型,因此在使用时将其替换为您的模型。

虽然轮胎会在开发过程中自动生成标记,但它不会生产,因此您必须使用耙子强制它。