如果这是我的模型,部分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
答案 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 }