首页/数据/NoSQL 速查/常用 mapping 参数
Elasticsearch89 条

常用 mapping 参数

除类型外,字段级参数能控制索引与存储行为:index 关闭检索、doc_values 关闭列存、ignore_above 截断、null_value 提供默认值、format 约定日期格式。

NoSQL 速查数据更新于 2026-10-13

mapping 参数控制什么

mapping 里的字段类型决定「值怎么解析」,字段级参数决定「值怎么索引和存储」:index 控制是否建倒排索引,doc_values 控制是否建列式存储,ignore_above 控制长字符串的截断,null_value 给 null 一个可索引的替代值,format 约定日期的解析格式。这些参数大多要在建索引时定下来,字段已经写入数据后再改往往要新建索引重建。

基本信息

indexfalse 时不建倒排索引,字段不可检索,但仍在 _source 里
doc_valuesfalse 时不建列存,不能排序与聚合,可省磁盘;默认为 true
ignore_abovekeyword 字段超过该长度的值不建索引,防止索引膨胀
null_value把 JSON null 替换成一个可索引的默认值
format日期解析格式,可用 || 组合多个,如 epoch_millis||strict_date_optional_time
适用版本Elasticsearch 7.x / 8.x 参数名一致

典型使用场景

  • 只回显不检索的大字段(原始报文、调试信息)用 index:false 省索引空间
  • 可能超长的 trace_id、URL 用 ignore_above 截断,避免索引被长值撑大
  • 确定需要排序与聚合的字段必须保留 doc_values
  • 时间字段格式不统一时用 format 显式声明,避免动态映射把日期识别成字符串
  • 用 null_value 让缺失值也能参与范围查询与排序

常用参数示例

常用参数示例
# 给已有索引追加字段级参数
PUT /metrics-000001/_mapping
{
  "properties": {
    "debug_payload": { "type": "keyword", "index": false },      # 只回显不检索
    "sample_raw":    { "type": "double",  "doc_values": false },  # 不排序不聚合
    "trace_id":      { "type": "keyword", "ignore_above": 128 },   # 超长值不建索引
    "ts":            { "type": "date", "format": "epoch_millis||strict_date_optional_time" },
    "region":        { "type": "keyword", "null_value": "unknown" }
  }
}

# 确认参数是否生效
GET /metrics-000001/_mapping
GET /_cat/fielddata?v   # 查看字段数据占用(fielddata 只在特定场景用)

常用参数与代价

参数作用代价 / 注意
index: false不建倒排索引,字段不可检索对该字段查询永远无命中且不报错
doc_values: false不建列式存储,节省磁盘不能排序、聚合,也不能在脚本中取值
ignore_above: N超长字符串不建入索引超长值无法精确匹配与聚合
null_value: vnull 索引成替代值 v只影响索引,_source 里仍是 null
format约定日期解析格式格式写错会导致整个文档写入被拒
fields 多字段同一字段用不同方式索引每个子字段都额外占用索引空间
index:false 与 doc_values:false 都是省空间的常用手段,但都会永久性丧失字段能力:前者不能检索,后者不能排序聚合;只应对确认不回查的字段使用,并在 mapping 注释里标明用途。

易错点

  • 对 index:false 的字段发起查询不会报错但永远无命中,排查时极易被忽略,团队应统一给这类字段加命名后缀或注释
  • null_value 只替换索引中的值,_source 里仍然是原始 null,靠 _source 回填数据时看到的还是空
  • ignore_above 截断的长值既不能精确匹配也不能聚合,日志类超长字段要确认业务是否真的不需要回查
  • mapping 参数在字段已有数据后多数不能直接修改,只能新建索引再 reindex;靠动态映射猜出来的错误类型应尽早纠正

数据来源与参考

  • Elasticsearch Guide: Mapping parameters
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌