一尘不染

更新生产中的ElasticSearch映射( tyre)

elasticsearch

我想对如何处理以下情况有清楚的了解:

我正在从activerecord模型中添加或删除属性,所以我想在生产中的ElasticSearch中更新其映射。

据我了解,我应该…

1-创建一个新索引并从mysql导入所有内容

这是正确的命令吗?rake environment tire:import CLASS='Bow' INDEX='new-bows'
为了创建正确的映射,我应该已经在模型中更新了映射,对吗?

2-删除旧的映射并创建一个别名bowsnew-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

3-重启应用


我是否缺少某些东西,或者是否有更简单的方法来使用Tyre实现我想要的?

我应该在什么时候删除旧索引? 在使用相同名称创建别名之前,还是可以在以后使用别名?


阅读 202

收藏
2020-06-22

共1个答案

一尘不染

您应该保留旧索引,直到确定新索引是所需的100%。如果不是这种情况,您可以向后翻转别名。

Tire测试套件中有一个针对“翻转别名”的集成测试。

2020-06-22