ElasticSearch _reindex的操作以及异常处理
0 969 0 2021-10-28 11:12:11
前言
ElasticSearch的索引是不支持直接修改的,比如删除字段、修改分片等,需要新建索引,把旧索引的数据同步到新索引上。
针对上述问题,ElasticSearch提供了一个操作:_reindex。
版本:7.4
操作命令
命令如下:
POST _reindex { "source": { "index": "old_index" }, "dest": { "index": "new_index" } }
关于迁移速度
1、ElasticSearch的_reindex默认迁移速度默认是:1000,可以通过设置合理的大小,来达到最佳的迁移速度。
命令如下:
PS:看其他文章建议size设置为5000为最佳,个人暂时没有时间验证。
POST _reindex { "source": { "index": "old_index", "size": 5000 }, "dest": { "index": "new_index" } }
2、ElasticSearch的slices默认是:1,可以设置slices为当前索引的分片数,可以提高迁移速度;
假如分片数为6
命令如下:
POST _reindex?slices=6&refresh { "source": { "index": "old_index" }, "dest": { "index": "new_index" } }
关于迁移超时问题
解决方法:wait_for_completion=false
POST _reindex?wait_for_completion=false { "source": { "index": "old_index", "size": 5000 }, "dest": { "index": "new_index" } }
当然还有其他参数可以增加,后续补充...
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.4/docs-reindex.html
本文链接地址,转载请标注:
https://caohongyuan.com/article/185