• elastic数据迁移或者修改mapping


    elastic 在我们建立好mapping之后就是不能修改的了。

    那么如果当前mapping不能满足我们的需求,比如以前是long,后面发现text更好,那怎么办?

    比如以前的index=cc 感觉不好听想改为 index=zbf怎么办?

    这里就涉及到一个知识点 reindex 重建索引

    例如我现在有个index i_dw_cc_test

    get i_dw_cc_test/_mapping

    properties" : {
            "des" : { "type" : "text" },
            "id" : { "type" : "keyword"},
            "name" : {"type" : "text" }
          }

    如何修改mapping呢?

    1.创建一个备份index 

    put i_dw_cc_test_bak

    2.迁移原始数据到备份数据index 

    POST _reindex?refresh=true
    {
      "source": {
        "index": "i_dw_cc_test"
      },
      "dest": {
        "index": "i_dw_cc_test_bak"
      }
    }

    get i_dw_cc_test_bak/_count  查询数据是否ok

    get i_dw_cc_test_bak/_mapping  查询备份数据的mapping啥样

     3.数据已经备份了,将原始数据删掉

    delete i_dw_cc_test

    4.重新创建 i_dw_cc_test索引 设置好自己想要的mapping 比如我这里都想要text

    put  i_dw_cc_test
    {
      "mappings":{
        "properties":{
          "id":{"type":"text"},
          "name":{"type":"text"},
          "des":{"type":"text"}
        }
      }
    }

    5.继续重复第二部 数据迁移工作,把bak数据迁移到原表

    POST _reindex?refresh=true
    {
      "source": {
        "index": "i_dw_cc_test_bak"
      },
      "dest": {
        "index": "i_dw_cc_test"
      }

    get i_dw_cc_test/_count  查询数据是否ok

    get i_dw_cc_test/_mapping  查询备份数据的mapping啥样

    注意这里 不能说我以前字段是des 现在想改为desc。 reindex的时候不管你的字段名。只看source的字段在不在dest里,在就按照你的mapping设置字段类型,不在就只能自己默认keyword了。

    总结下这个修改mapping的流程。

    1.建立bak索引 

    2.复制原始数据到bak索引里

    3.删除原先索引,重建索引为自己需要的mapping

    4.复制bak索引的数据到原始索引。

  • 相关阅读:
    audiopolicy
    物联网的10个初级术语
    NSSCTF之Misc篇刷题记录(17)
    自媒体短视频中视频相关的问题总结,涉及视频类型、质量、时长和原创等方面
    2023陇剑杯
    UGUI界面性能优化1-UGUI开发界面时常见的优化方法和注意事项
    数据分析-Excel基础函数的使用
    【Java编程进阶】Java开发环境搭建
    2023亚太杯数学建模A题B题C题思路模型代码论文指导
    Selenium获取网页数据(1)——环境配置及入门
  • 原文地址:https://blog.csdn.net/cclovezbf/article/details/132711454