ES 修改索引字段类型

大体的原理:
1:按照老索引按需修改,新建新索引
2:转移数据(数据量大,时间会很长)
3:删除老索引
4:给新索引 创建别名

第一步:创建新索引

可以先获取老索引mapping

java 复制代码
GET /old_index/_mapping

-------按需修改mapping结构或类型----

java 复制代码
PUT /new_index
{
  "mappings": {
    "properties": {
      "new_field": {
        "type": "text"
      }
    }
  }
}

第二步:转移数据(数据量大,时间会很长)

使用_reindex API将旧索引的数据复制到新索引中

java 复制代码
POST /_reindex
{
  "source": {
    "index": "old_index"
  },
  "dest": {
    "index": "new_index"
  }
}

异步任务迁移数据

java 复制代码
POST /_reindex?wait_for_completion=false
{
  "source": {
    "index": "old-index"
  },
  "dest": {
    "index": "new-index"
  }
}
响应:
{
  "task": "jxZZibZPQ_mViMJHQyFz5w:7665"
}
查看任务状态:
GET /_tasks/jxZZibZPQ_mViMJHQyFz5w:7665

验证数据是否全部转移:查看新旧索引中的数据总量是否相等

GET /old-index/_count

GET /new-index/_count

第三步 删除旧索引(可选步骤,谨慎操作)

DELETE /old_index

这里可能提示错误,

does not support having a body

可以借助插件工具 直接点击删除

第四步:给新索引 创建别名

java 复制代码
PUT /new_index/_alias/old_index

参考文章
Elasticsearch重建索引-修改索引字段类型
Elasticsearch Mapping 类型修改

相关推荐
Elasticsearch3 分钟前
Elasticsearch:安装自行管理的 Elastic Stack 集群
elasticsearch
goujunwe15 分钟前
保险个人实体图谱搭建实操:全网信息统一,消除 AI 交叉校验的信息冲突
大数据·人工智能
程序员差不多先生20 分钟前
Anthropic 用 5 个月重写了 Git:当 AI Agent 把版本控制系统逼到墙角
人工智能·git·elasticsearch·deepseek v4 pro·kimi k3·glm 5.3·qwen3.7 max
长春的KAKA30 分钟前
爆火GitHub项目REA介绍
大数据
一麻袋土豆灬35 分钟前
Workbuddy模型名后面那个 0.11x 是什么意思
大数据·程序人生·语言模型·ai编程
Elastic 中国社区官方博客36 分钟前
Jina AI:Elasticsearch 集成
大数据·运维·人工智能·elasticsearch·搜索引擎·全文检索·jina
workflower36 分钟前
超算中心聚焦高性能计算场景(HPC)
大数据·网络·人工智能·机器人·云计算·汽车
cspttty1 小时前
2027校招:数据科学与大数据技术转产品运营,如何把SQL和统计知识变成业务能力
大数据·产品运营
草莓熊Lotso1 小时前
【C++ 基于微服务的即时通讯系统】Elasticsearch 从安装到 C++ 客户端二次封装全落地
linux·网络·数据库·c++·elasticsearch·微服务
2601_962780911 小时前
2027校招:数学与应用数学转产品运营,如何把数据能力变成项目证据?
大数据·人工智能·产品运营