如何手动删除轮胎索引

时间:2013-08-31 19:58:34

标签: ruby-on-rails elasticsearch tire

如果这是我的模型,部分after_destroy() {tire.index.delete}是使用回调删除索引的正确方法(与db不同步)?

如果不是如何以及在哪里可以手动删除索引而不使用curl?

class Tag < ActiveRecord::Base
  attr_accessible :name

  include Tire::Model::Search
  include Tire::Model::Callbacks

  after_destroy() {tire.index.delete}

  def self.search(params)
    tire.search(load: true) do
      query { string params[:query]} if params[:query].present?
    end
  end

end

2 个答案:

答案 0 :(得分:4)

您可以启动代码存在的ruby控制台并在那里运行。

基于模型的轮胎方法的索引名称采用多种形式的模型名称作为索引名称。 例如:article.rb将文章作为索引名称。

Tire.index("<index_name>").delete

在你的情况下,它将是

Tire.index("tags").delete

请注意,您还可以在索引名称

中使用通配符
Tire.index("*articles").delete

将删除索引名称以“articles”结尾的任何索引

答案 1 :(得分:1)

是的,如果你想在没有卷曲的情况下手动删除索引。 您可以进行Rest-Client调用以删除索引。 例如。

    generated_url = "http://#{host_name}:9200/#{index_name}"   
    RestClient.delete(generated_url) { |response, request, result| response }