当我们想修改Es中字段类型时,是没办法直接修改的。
我们可以先创建一个新索引(已修改的索引字段类型),再将旧索引的数据同步到新索引中,删除旧索引,修改新索引名字为旧索引,这样就修改成功了。
操作前,一定要备份数据,以防万一!!!
创建新索引
PUT new_index
{
.....
}
同步数据
POST _reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
reindex对es来说,是一个十分耗时的任务
查询reindex进度
GET _tasks?detailed=true&actions=*reindex
取消reindex
POST tasks/node_id:task_id/_cancel
删除旧索引
DELETE old_index
修改新索引名为旧索引名
POST /_aliases
{
"actions": [
{"add": {"index": "new_index", "alias":"old_index"}}
]
}