es中修改字段类型的映射关系不像关系型数据库那样,如果已经存在的字段,想要修改,需要作额外操作,先将数据备份,执行新索引(修改mapping),再导入;
在kibina模拟执行以下命令:
PUT test.copy
POST _reindex
{
"source": {
"index": "test"
},
"dest": {
"index": "test.copy"
}
}
GET test.copy/_search
{
"query": {
"match_all": {}
}
}
DELETE test
PUT test
POST _reindex
{
"source": {
"index": "test.copy"
},
"dest": {
"index": "test"
}
}
GET test/_search
{
"query": {
"match_all": {}
}
}
DELETE test.copy
1.put test.copy 新建一个备份索引
2.使用_reindex方法 将需要备份的索引数据,导入到备份索引
3.查询备份索引中是的有数据,是否导入完成
4.删除原索引 test
5.执行新建test 索引,在此之前可以指定新字段类型mapping,执行新模板template
6.查询新索引mapping是否已更新
7.将备份索引数据导入至新索引
8.查询新索引数据是否已导入
9.删除备份索引