首页/云/可观测性速查/Mapping 与字段类型选择
日志平台52 条

Mapping 与字段类型选择

映射定义字段如何索引:keyword 用于精确匹配与聚合,text 会分词用于全文检索;字段类型选错会让查询与聚合都出问题。

可观测性速查云更新于 2026-10-13

映射决定字段怎么被索引

映射定义字段如何被索引:关键字类型用于精确匹配与聚合,文本类型会分词用于全文检索,数值与时间类型支持范围查询。字段类型写在索引里,选错会让查询与聚合同时出问题,而修正往往涉及重建索引。

两种最常见的坑

最常见的问题是用文本字段做精确匹配:分词之后原值已不存在,只能改查它的关键字子字段。另一个是想修改已有字段的类型,而这通常需要重建索引再切换别名,属于必须提前规划、不能临时处理的操作。

基本信息

关键字类型不分词,适合枚举、标识与设备名
文本类型分词,适合自由文本的全文检索
数值与时间支持范围查询与排序
查看方式通过索引的映射接口查看当前字段定义

典型使用场景

  • 日志字段设计:标识类与枚举类字段使用关键字类型
  • 全文检索:消息正文用文本类型,支持按词检索
  • 聚合统计:对关键字字段做分组与排序
  • 数值范围筛选:耗时与字节数用数值类型
  • 字段排查:先看映射,再决定查询怎么写

字段类型与查询方式

字段类型与查询方式
# 查看当前映射
GET /logs-app/_mapping

# 追加字段(已有字段类型不能直接改,需重建索引)
PUT /logs-app/_mapping
{
  "properties": {
    "trace_id":    { "type": "keyword" },   # 精确匹配与聚合
    "duration_ms": { "type": "long" },      # 范围查询
    "message":     { "type": "text" }       # 全文检索
  }
}

类型选择

类型特点适用字段
关键字不分词,可精确匹配与聚合标识、枚举、状态码
文本分词,支持全文检索消息正文、描述性文本
数值支持范围查询与排序耗时、字节数、计数
时间支持时间范围筛选时间戳字段
一条经验规则:会被用来过滤与聚合的字段用关键字类型,会被用来做全文搜索的字段用文本类型。
已有字段类型不能原地改成不兼容类型:需要重建索引再切换别名,改动前必须评估数据量与可用窗口。

易错点

  • 对文本字段做精确匹配:分词后原值不存在,查询结果为空
  • 高基数字段全部设为可聚合类型:索引体积与聚合开销大幅上升
  • 临时想改字段类型:多数情况需要重建索引,成本远超预期
  • 不查看映射就写查询:字段名与类型不符,排查方向容易跑偏

数据来源与参考

  • Elastic 官方文档 · Mapping
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌