elasticsearch修改mapping
es不支持直接修改mapping,可以用reindex功能重建索引
1. 新建备用索引
服务器上根据新的mapping文件新建索引
curl -XPUT "http://192.168.2.1:9200/new_index?pretty" -H 'Content-Type:application/json' -d @mapping_new.json
2. 拷贝数据到新的索引中
可用postman,也可以直接用命令
postman
POST http://192.168.2.1:9200_reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
//命令方式
curl -XPOST "http://192.168.2.1:9200/_reindex" -H 'Content-Type:application/json' -d '{"source":{"index": "old_index"},"dest": {"index": "new_index"}}'
3. 删除并新建原始索引
curl -XDELETE "http://192.168.2.1:9200/old_index"
curl -XPUT "http://192.168.2.1:9200/new_index?pretty" -H 'Content-Type:application/json' -d @mapping_new.json
4. 还原原始索引数据
curl -XPOST "http://192.168.2.1:9200/_reindex" -H 'Content-Type:application/json' -d '{"source":{"index": "new_index"},"dest": {"index": "old_index"}}'