ES的字段更改字段类型

背景:联调时候往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"
      }
    }
  ]
}
相关推荐
MY_TEUCK2 小时前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)
java·开发语言·spring boot
镜宇秋霖丶2 小时前
2026.5.6@霖宇博客制作中遇见的问题
前端·javascript·vue.js
今天长肉了吗2 小时前
银行风控项目踩坑实录:指标跑了6小时,风险评分全挂了
java
随读手机3 小时前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
许彰午3 小时前
03-二叉树——从递归遍历到非递归实现
java·算法
小李子呢02113 小时前
前端八股Vue---Vue-router路由管理器
前端·javascript·vue.js
nj01284 小时前
Spring 循环依赖详解:三级缓存、早期引用、AOP 代理与懒加载
java·spring·缓存
野生技术架构师4 小时前
2026年最全Java面试题及答案汇总(建议收藏,面试前看这篇就够了)
java·开发语言·面试
一只叫煤球的猫5 小时前
ThreadForge 源码解读一:ThreadScope 如何把并发任务放进清晰边界?
java·面试·开源
洛_尘5 小时前
Python 5:使用库
java·前端·python