elasticsearch中给类型增加新字段

本文介绍了在Elasticsearch中如何为不同类型增加新字段。背景提到ES的schema-less特性,新字段仅对新数据生效,并涉及两种索引方案:动态模板每天生成新索引,以及单索引多type。添加字段的方法包括在dynamic template和_default_mapping中定义,同时提到了针对这两种方案的字段添加操作步骤,包括清理旧索引和更新mapping。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

Elasticsearch 是schema-less的数据存储方案。可以任意的向索引中添加字段。在此需明确以下背景

  1. ES新添加的字段只对新数据、新type起作用;原有已经索引的数据不会生效;
  2. 为加快ES的检索和索引效率,构建索引时会指定其mapping结构;添加索引字段即修改mapping;
  3. 目前我们采用两种索引方案:
    1. 指定动态模板,每天生成新索引;
    2. 单索引多type:指定_default_mapping, 其每天的type主动继承mapping定义。

添加字段方案

针对A

该方案比较简单:只需在dynamic template中的mapping中添加新的字段即可;新生成的索引自动应用。刷数时,清理掉旧索引,创建新索引。

针对B

在_default_  mapping中添加字段定义。每日新生成的type会自动应用该字段。

刷数比较麻烦:1. 清理原有数据;使用 _delete_by_query;2. 使所有的type应用新添加的字段,使用

update_all_types, 如下图所示

PUT /my_index/_mapping/my_type?update_all_types

  {

    "properties": {

      "title": {

        "type": "string",

        "analyzer": "english"

      }

    }

  }


1.PUT /my_index/_mapping/my_type

{
    "my_type": {
        "properties": {
            "english_title": {
                "type":     "string",
                "analyzer": "english"
            }
        }
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值