元数据字段(_source、_id、_routing)
本章定位:ES 为每个文档内置了多个元数据字段。理解 _source、_id、_routing 的作用和取舍直接影响存储和查询效率。
定义与作用
Elasticsearch 为每个文档自动生成以下核心元数据字段:
_id:文档唯一标识,手动指定或自动生成_source:文档原始 JSON 内容_routing:路由值,决定文档存储在哪个分片_index/_type:所属索引和类型(7.x 后 type 废弃)
核心原理:路由与分片分配
完整示例:小崔理解字段取舍
_source 过滤
POST /students/_search
{
"_source": { "includes": ["name", "score"], "excludes": ["resume"] }
}
指定路由写入和查询
PUT /orders/_doc/1001?routing=user_123
{ "user_id": "user_123", "amount": 299.0 }
GET /orders/_doc/1001?routing=user_123
小结
_id手动指定可选更佳的业务 ID_source可通过enabled: false关闭节省存储_routing将同一用户的数据路由到同一分片,减少搜索分片数- 谨慎关闭 _source:导致无法 Reindex、Update 和高亮