看看这个答案,Update ElasticSearch mapping in production (Tire),导入新索引名称的主要方法是使用rake
我正在使用mysqlriver导入我的数据(有很多,我喜欢控件)。当我第一次使用轮胎设置加载我的ruby模型时,它会自动创建一个索引。如何更改它使用的索引名称?
class Tag
include Tire::Model::Search
mapping do
indexes :id, :index => :not_analyzed
indexes :name, :analyzer => 'snowball'
end
after_destroy { self.index.remove(self) rescue nil }
after_save { reindex_dirty %w(name deleted) }
end
我的目标是让它创建一个名为“tag_version_1”的索引,这样我就可以创建别名并进行0停机时间索引更改。
答案 0 :(得分:1)
只需在模型中使用index_name "my-custom-name"
方法;请参阅https://github.com/karmi/tire/blob/master/test/models/active_model_article_with_custom_index_name.rb以获取示例。
当Tire已经存在时,它不会尝试创建索引,因此当您创建索引,加载数据,启动应用程序时,所有内容都应该就位。
此外,您可能希望使用Elasticsearch对索引别名的支持,以便更方便和透明地管理。请参阅Tire的API:https://github.com/karmi/tire/blob/master/test/integration/index_aliases_test.rb和文档:http://www.elasticsearch.org/guide/reference/api/admin-indices-aliases/
答案 1 :(得分:0)
加入@ karmi的答案。使用index_name'my-custom-name'。 因为这个原因我遇到了错误。