Elasticsearch索引重建过程参考
满足条件可执行重建
- 索引字段类型错误,名称被占用
- 单个分片数据量大查询性能下降,增加分片数
- 单个分片容量超过50G,增加分片数
- 需修改索引类型type名称
重建过程说明
- 第一步先准备*.json索引结构脚本
- 第二步重建时,无用数据可以增加过滤条件
- 第二步全量数据迁移耗时较长时,执行完后可执行第四步时差迁移
- 第三步将索引别名test_index,由test_index_1删除,更换为test_index_2
- 第四步时差可自行调整,通过时间范围同步数据
- _reindex 复制数据效率较好 推荐使用,也可以使用datax或其他工具同步数据
- 此同步过程,支持热迁移
重建过程
脚本示例:将别名为test_index 的索引test_index_1,重建为 test_index_2
第一步
新增加索引结构
curl -H "Content-Type:application/json" -X PUT http://127.0.0.1:9200/test_index_2 -d @/test_index_2.json
第二步
执行索引数据-全量迁移
curl -H "Content-Type:application/json" -X POST http://127.0.0.1:9200/_reindex -d '{"source":{"index":"test_index_1","size": 10000},"dest":{"index":"test_index_2"}}'
第三步
执行别名切换
curl -H "Content-Type:application/json" -X POST http://127.0.0.1:9200/_aliases -d '{"actions":[{"add":{"index":"test_index_2","alias":"test_index"}},{"remove":{"index":"test_index_1","alias":"test_index"}}]}'
第四步
执行索引数据-时差迁移
curl -H "Content-Type:application/json" -X POST http://127.0.0.1:9200/_reindex -d '{"conflicts":"proceed","source":{"index":"test_index_1","type":"test_index","query":{"range": {"updatetime": {"gte": "now-1d/d"}}}},"dest":{"index":"test_index_2","version_type": "external"}}'
第五步
完成...检查es索引数据