ES修改索引字段(认命篇)

在es里要修改索引字段,运气好的时候,可以用简单方案:
https://www.jianshu.com/p/fb903f4e35cf

但是大多数情况下还是要认命。思路大概是:

  1. 创建临时索引
  2. 把数据备份到临时索引
  3. 确认数据是否备份成功
  4. 删除旧索引
  5. 创建新索引
  6. 把临时索引的数据拷贝回新索引
  7. 删除临时索引

创建临时索引

先用GET命令获得索引的mappings和settings信息

GET xxxx

用PUT命令创建一个一样结构的临时索引

PUT xxxx_tmp20221007/
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
        "content": {
          "type": "keyword"
        },
       ...
      }
  }
}

把数据备份到临时索引

POST _reindex
{
  "source": {
    "index": "xxxx"
  },
  "dest": {
    "index": "xxxx_tmp20221007"
  }
}

查询数据是否拷贝成功

GET xxxx_tmp20221007/_search

删除旧索引

DELETE xxxx

创建新索引

PUT xxxx/
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
        "content": {
          "type": "keyword"
        },
       ...
      }
  }
}

_reindex拷贝索引

DELETE删除临时索引

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容