首页/数据/NoSQL 速查/新增字段与更新 mapping
Elasticsearch89 条

新增字段与更新 mapping

已有索引可继续补充新字段:调用 PUT /<index>/_mapping 提交 properties;但已存在字段的类型不能修改,只能新建索引后重建数据。

NoSQL 速查数据更新于 2026-10-12
接口PUT /<index>/_mapping
可做新增字段、加子字段 multi-field、新增 runtime 字段
不可做修改已有字段类型(会返回错误)

示例

示例
PUT /my-index-000001/_mapping
{
  "properties": {
    "email": { "type": "keyword" },
    "age": { "type": "integer" }
  }
}
# 查看当前映射
GET /my-index-000001/_mapping
查看映射用 GET /<index>/_mapping;修正类型要先建新索引,再用 _reindex 搬数据,最后切换别名。

易错点

  • 把 text 字段改成 keyword 会被拒绝并提示 mapper [x] cannot be changed from type [text]
  • 别名切换前要确认新索引已 refresh 到最新数据,否则短暂出现查询缺口

数据来源与参考

  • Elasticsearch Guide: Put mapping API
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌