es-删除字段-实测

es字段一旦创建是无法删除的,本案的方案是复制新老索引的方法

一、背景

现有索引 index1,待删除字段field1和extendMap.field2,es版本6.3.2

二、步骤

1、删除index1中的filed1和extendMap.field2两个字段的数据

复制代码
POST index1/_update_by_query  
{
  "query":{
        "bool":{
            "must":[
                {
                    "exists":{
                        "field":"field1"
                    }
                }
            ]
        }
    },
 "script": "ctx._source.remove('field1')"
  }

POST index1/_update_by_query  
{
  "query":{
        "bool":{
            "must":[
                {
                    "exists":{
                        "field":"extendMap.field2"
                    }
                }
            ]
        }
    },
 "script": "ctx._source.extendMap.remove('field2')"
  }

2、新建index2,map中不要有上述待删除字段

3、拷贝index1到index2

复制代码
POST _reindex
{
    "source": {
        "index": "index1"
    },
    "dest": {
        "index": "index2"
    }
}

4、删除index1

复制代码
DELETE index1

5、新建index1,map中不要有上述待删除字段

6、拷贝index2到index1

复制代码
POST _reindex
{
    "source": {
        "index": "index2"
    },
    "dest": {
        "index": "index1"
    }
}

7、删除index2

复制代码
DELETE index2

完成

相关推荐
N***738515 小时前
SQL锁机制
java·数据库·sql
小羊在奋斗15 小时前
MySQL表的约束:从基础到核心(附场景+案例)
android·数据库·mysql
Wang's Blog15 小时前
MongoDB小课堂: 文档查询之匹配查询与比较操作符深度解析
数据库·mongodb
cookqq15 小时前
mongodb根据索引IXSCAN 查询记录流程
数据结构·数据库·sql·mongodb·nosql
p***323515 小时前
如何使用C#与SQL Server数据库进行交互
数据库·c#·交互
h***346316 小时前
Redis安装教程(Windows版本)
数据库·windows·redis
q***656916 小时前
使用Canal将MySQL数据同步到ES(Linux)
linux·mysql·elasticsearch
原神启动116 小时前
云计算大数据——Nginx 实战系列(性能优化与防盗链配置)
大数据·nginx·云计算
周全全17 小时前
基于ElasticSearch的语义检索学习-向量化数据、向量化相似度、向量化检索
大数据·学习·elasticsearch
泡沫·17 小时前
5.MariaDB数据库管理
数据库·mariadb