轮胎使用自定义名称创建索引而不用轮胎:导入

时间:2013-08-21 00:16:09

标签: ruby-on-rails elasticsearch tire

看看这个答案,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停机时间索引更改。

2 个答案:

答案 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'。 因为这个原因我遇到了错误。