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"
      }
    }
  ]
}
相关推荐
JMS_兔子8 分钟前
elementUI非常规数据格式渲染复杂表格(副表头、合并单元格)
前端·javascript·elementui·vue
九圣残炎13 分钟前
【Vue】Ego商城项目跟做
前端·javascript·vue.js·node.js
Allen Bright15 分钟前
Java代码操作Zookeeper(使用 Apache Curator 库)
java·zookeeper·java-zookeeper
zhenryx21 分钟前
前端node.js
前端·node.js
云上星空23 分钟前
K8s调度器扩展(scheduler)
java·贪心算法·kubernetes
突然好想你之路在脚下31 分钟前
Kubernetes(k8s)入门到实战教程
java·容器·kubernetes
博观而约取35 分钟前
Jenkins升级到最新版本后无法启动
java·linux·centos·jenkins
树下一少年35 分钟前
elasticsearch报错fully-formed single-node cluster with cluster UUID
elasticsearch·k8s·statefulset·fully-formed·locked into
Blue桃之夭夭37 分钟前
CSDN设置成黑色背景(谷歌 Edge)
前端·edge
一棵开花的树,枝芽无限靠近你44 分钟前
【element-tiptap】导出word
前端·笔记·学习·编辑器·word·element-tiptap