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索引数据

 

posted @ 2020-04-01 22:33  BensonWei  阅读(2583)  评论(0编辑  收藏  举报