我想清楚地了解如何处理以下情况:
我正在从activerecord模型中添加或删除属性,因此我想在生产中更新其在ElasticSearch中的映射。
根据我的理解,我应该......
这是正确的命令吗? rake environment tire:import CLASS='Bow' INDEX='new-bows'
为了创建正确的映射,我应该已经在模型中更新了我的映射,对吧?
bows
new-bows
的别名
我会那样做,这是对的吗?
old_index_name = Bow.tire.index.name
Bow.tire.index.delete
alias = Tire::Alias.new
alias.name(old_index_name)
alias.index('new-bows')
alias.save
我错过了什么,或者是否有更简单的方法来实现我想要的轮胎?
我应该在什么时候删除旧索引?在创建具有相同名称的别名之前,还是可以在之后执行?
答案 0 :(得分:3)
您应该保留旧索引,直到您确定新索引是您想要的100%。如果不是这种情况,您可以将别名翻转回来。
Tire测试套件中有一个用于“翻转别名”的集成测试。
答案 1 :(得分:3)
向索引添加新列:
index = Tire.index("articles")
index.mapping("article", :properties => { :pinterest_shares => {:type => 'integer', :index => 'not_analyzed', :include_in_all => false} })