2013-08-31 63 views
2

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

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

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 

回答

4

你可以在代码存在的地方启动ruby控制台并在那里运行它。

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

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

你的情况,这将是

Tire.index("tags").delete 

请注意,您还可以使用通配符在指标名

Tire.index("*articles").delete 

将删除其中有以“结尾索引名的任何索引文章“

1

是的,如果你想手动删除索引而不卷曲。 您可以使Rest-Client调用删除索引。 例如。

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