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"
      }
    }
  ]
}
相关推荐
捕鲸叉1 小时前
QT自定义工具条渐变背景颜色一例
开发语言·前端·c++·qt
傻小胖2 小时前
路由组件与一般组件的区别
前端·vue.js·react.js
Elena_Lucky_baby2 小时前
在Vue3项目中使用svg-sprite-loader
开发语言·前端·javascript
快乐非自愿3 小时前
一文解秘Rust如何与Java互操作
java·开发语言·rust
小万编程3 小时前
基于SpringBoot+Vue毕业设计选题管理系统(高质量源码,提供文档,免费部署到本地)
java·vue.js·spring boot·计算机毕业设计·java毕业设计·web毕业设计
重生之搬砖忍者3 小时前
uniapp使用canvas生成订单小票图片
前端·javascript·canva可画
m0_748235073 小时前
使用rustDesk搭建私有远程桌面
java
万水千山走遍TML3 小时前
console.log封装
前端·javascript·typescript·node·log·console·打印封装
快乐是3 小时前
发票打印更方便
java
文浩(楠搏万)3 小时前
Java内存管理:不可达对象分析与内存泄漏优化技巧 Eclipse Memory Analyzer
java·开发语言·缓存·eclipse·内存泄漏·不可达对象·对象分析