es创建索引设置字段不分词_实战elasticsearch索引平滑迁移方案

本文介绍了如何在Elasticsearch中实现数据平滑迁移,详细阐述了从创建别名到重建索引的步骤,并讨论了如何在创建索引时设置字段不分词。在迁移过程中,强调了处理冲突、分片同步和批量处理大小的策略,以确保业务连续性。
摘要由CSDN通过智能技术生成

15b477d302a383326d155c6b7ec00286.gif

 elasticsearch中的文档字段如何修改分词类型或者字段类型?不同数据量级的ES平滑处理方案是怎么样的?如何具体操作?

场景描述:

elasticsearch中已经设置好的mapping信息,是无法再次对已经存在的字段进行类型调整或增加分词操作功能,比如修改索引字段从类型long到text或增加ik分词器等。 elasticsearch底层实现是基于Lucene技术实现,在数据入库的时候已经根据设置好的mapping信息,进行索引的创建并生成对应的索引数据文件,所以文档落库之后,字段则无法修改。 那如果要修改已经存在的字段,该如何操作呢?

01

ES数据平滑迁移方案

解决方案:

1、如果不需要保持原字段名称,可以采用新增一个符合需求的字段用户替换原来字段。这个方案不需要对原始旧索引数据进行重建。 2、如果需要保持原始文档字段必须一致,这个时候则可以采用es的索引别名aliases以及 reindex 两个命令进行操作。具体如下图所示:  

d2b8656a0779df8bd63f2ee75854a309.png

操作步骤:

旧索引:test_user_v1   新索引test_user_v2   索引别名:test_user_info

1、如果旧索引没有创建别名,可以使用aliases创建别名test_user_info,需调整业务方访问的索引改为别名访问。

curl --location --request POST 'http://127.0.0.1:9200/_aliases' \--data-raw '{
        "actions": [        {
                "add": {
                    "index": "test_user_v1",                "alias": "test_user_info"            }        }    ]}'返回值:{
        "acknowledged": true}

2、创新的索引test_user_v2,需保证type类型的值与旧索引的type一致,否则会异常。

curl --loc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值