ES修改mapping中的字段名称

本文介绍了如何在Elasticsearch中通过_reindex API和script脚本实现字段重命名,详细步骤包括创建源索引、使用_reindex API重命名字段并将数据迁移到新索引,最后验证结果。
摘要由CSDN通过智能技术生成

前言

我们都知道,在ES中一旦声明了字段名称,就不能对字段名称进行修改了。只能新增字段,不能删除、修改已经声明的mapping字段。
那么,如果我们需要修改mapping中的字段名称,需要怎么操作呢?


一、分析

不能直接修改原索引中的mapping字段,那么只能在新索引中重命名索引字段,然后将数据导入到新索引。
而ES中重建索引命令_reindex正好能很好的支持这一点。

官网说明:docs-reindex-change-name

二、实战

1、创建索引test并插入数据

POST test/_doc/1?refresh
{
  "text": "words words",
  "flag": "foo"
}

2、通过reindex重命名字段名称

说明:
将原索引test中的字段flag重命名为tag

POST _reindex
{
  "source": {
    "index": "test"
  },
  "dest": {
    "index": "test2"
  },
  "script": {
    "source": "ctx._source.tag = ctx._source.remove(\"flag\")"
  }
}

3、查看结果

##根据id查看记录
GET test2/_doc/1
## 返回结果
{
  "found": true,
  "_id": "1",
  "_index": "test2",
  "_type": "_doc",
  "_version": 1,
  "_seq_no": 44,
  "_primary_term": 1,
  "_source": {
    "text": "words words",
    "tag": "foo"
  }
}

总结

本文主要介绍如何通过索引重建reindex+script脚本实现修改索引字段名称。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

斗者_2013

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值