聊聊ElasticSearch修改字段类型的方法
众所周知,ElasticSearch 修改字段类型一般操作是删索引重建索引。但这样的操作意味着数据会丢,重建索引如果数据量庞大,你需要耗费更多时间。
当然,为了规避问题,通常会在备用索引进行这样删除重建,但是,但是,如果这个非常耗时,有没有其他方式呢?
浩哥给指了条路:Reindex。
搜了下已经有前人总结过了,流程如下:
- 创建中间索引
- 设置中间索引_mapping
- _reindex 重新索引数据
- 删除有问题的旧索引
- 重新创建同名新索引(_mapping中字段类型正确)
- _reindex 中间索引数据至新索引
- 删除中间索引
实测OK,虽然 Reindex 其实也很耗时,但比实际全量重写快。合理利用wait_for_active_shards和wait_for_completion参数可以实现重建结束返回。
参考资料
如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。
如本文对您有用,捐赠和留言 将是对我最好的支持~(捐赠可转为站内积分)
如愿意,请向朋友推荐本站,谢谢。
尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。