【一次成功】ElasticSearch删除mapping中的字段

本文使用 ElasticSearch-head插件

下文简称:A源索引      B新索引      C最终索引

  1. 创建新索引B:分片数默认5,副本数设置为0,写入更快

  2. 设置索引B的映射:最终想要的mapping字段结构

    POST 索引B/type名/_mapping
    {
      "properties": {
        "log_request_body": {
          "type": "text",
          "fields": {
            "keyword": {
              "ignore_above": 256,
              "type": "keyword"
            }
          }
        },
        {更多字段....}
      }
    }

     

  3. 设置索引B不自动刷新,写入更快

    PUT 索引B/_settings
    {
      "index": {
        "refresh_interval": "-1"
      }
    }

  4. 设置索引B不动态添加mapping,否则会自动创建旧索引mapping,那不前功尽弃了

    dynamic策略

    true:默认值,遇到陌生字段,就动态添加

    false:遇到陌生字段,就忽略

    strict:遇到陌生字段,就报错

    PUT 索引B/type名/_mapping
    {
      "dynamic": "false"
    }

  5. 数据拷贝:A到B  wait_for_completion=false不等待直接返回taskid,任务后台执行

    "size": 5000,以5000个doc为一组进行复制

    POST _reindex?wait_for_completion=false
    {
      "source": {
        "index": "log_statistics",
        "size": 5000
      },
      "dest": {
        "index": "log_statistics_new3"
      }
    }

  6. 查看task进度 或 取消task

    GET _tasks?detailed=true&actions=*reindex

  7. 等待复制完成后,删除索引A,释放磁盘空间

     shell命令:

    curl -XPOST 'http://localhost:9200/源索引A/_forcemerge?only_expunge_deletes=true'
    curl -XDELETE localhost:9200/源索引A
  8. 重建与A相同名字的索引C,分片数默认5,副本数设置为0,写入更快

  9. 设置索引C不自动刷新,写入更快

  10. 数据拷贝:B到C  wait_for_completion=false不等待,返回taskid,后台执行

  11. 查看task进度

  12. 删除索引B,释放磁盘空间

  13. 最终索引C修改回默认设置:自动刷新,动态添加mapping,副本数设置为1

    步骤3值改为1s,步骤4值改为true,各执行一次,下面的是设置副本数:
    PUT 索引C/_settings
    {
      "number_of_replicas": 1
    }

最后总结:

es并不能直接删除mapping中的字段,只能建一个过度索引,复制数据后再建一个与最开始同名的索引,这样不影响原有代码查询。通过设置别名,会影响代码删除doc。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值