ES的字段更改字段类型
2023-12-13 14:12:30
背景:联调时候往ES插入了新字段,给的类型是"keyword"类型,后面发现存"object"类型更符合情况。再插入就会报错,需要把原来的"keyword"类型替换成"object"类型
步骤:
1.先把脏数据找出来删掉
DELETE device_events/_doc/f0ae608ca7cc4264bbbbc6d55cb8ab05
2.查询索引的字段类型映射
GET /device_events/_mapping
3.创建新的索引device_events11,并把之前的字段类型映射给到这个索引,但是需要把你要改的字段类型改掉,或者去掉也行(去掉的话,后面插入时候会自动创建类型,ES会根据插入数据类型来自动判断给什么类型)
PUT device_events11
{
"mappings" : {
// 插入第2步查询到的字段类型映射
}
}
4.把旧的索引中的数据转移到新建的索引里面
POST /_reindex
{
"source": {
"index": "device_events"
},
"dest": {
"index": "device_events11"
}
}
5.确认数据是否全部转移完成
GET device_events/_count
GET device_events11/_count
6.删掉旧索引
DELETE /device_events
7.把新的索引添加别名,别名就用旧的索引名
POST /_aliases
{
"actions": [
{
"add": {
"index": "device_events11",
"alias": "device_events"
}
}
]
}
文章来源:https://blog.csdn.net/weixin_41768263/article/details/134967317
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!