请知悉:本文最近一次更新为 10个月 前,文中内容可能已经过时。

聊聊ElasticSearch修改字段类型的方法

众所周知,ElasticSearch 修改字段类型一般操作是删索引重建索引。但这样的操作意味着数据会丢,重建索引如果数据量庞大,你需要耗费更多时间。

当然,为了规避问题,通常会在备用索引进行这样删除重建,但是,但是,如果这个非常耗时,有没有其他方式呢?

浩哥给指了条路:Reindex。

搜了下已经有前人总结过了,流程如下:

  1. 创建中间索引
  2. 设置中间索引_mapping
  3. _reindex 重新索引数据
  4. 删除有问题的旧索引
  5. 重新创建同名新索引(_mapping中字段类型正确)
  6. _reindex 中间索引数据至新索引
  7. 删除中间索引

实测OK,虽然 Reindex 其实也很耗时,但比实际全量重写快。合理利用wait_for_active_shards和wait_for_completion参数可以实现重建结束返回。


参考资料

ElasticSearch 修改字段类型 _reindex

Reindex API


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《聊聊ElasticSearch修改字段类型的方法》相关的博文:


留言

avatar
😀
😀😁😂😅😭🤭😋😘🤔😰😱🤪💪👍👎🤝🌹👌