本文共 1577 字,大约阅读时间需要 5 分钟。
在Elasticsearch下,一个文档除了有数据之外,它还包含了元数据(Metadata)。每创建一条数据时,都会对元数据进行写入等操作,当然有些元数据是在创建mapping的时候就会设置,
它里面定义了每个添加的doc的处理方式。 类似于数据库的表结构数据。
ES中元数据大体分为五中类型:身份元数据、索引元数据、文档元数据、路由元数据以及其他类型的元数据
_index:文档所属索引 , 自动被索引,可被查询,聚合,排序使用,或者脚本里访问
_type:文档所属类型,自动被索引,可被查询,聚合,排序使用,或者脚本里访问
_id:文档的唯一标识,
建索引时候传入 ,不被索引, 可通过_uid被查询,脚本里使用,不能参与聚合或排序
_uid:由_type和_id字段组成,自动被索引 ,可被查询,聚合,排序使用,或者脚本里访问
_source : 一个doc的原生的json数据,不会被索引,用于获取提取字段值 ,启动此字段,索引体积会变大,如果既想使用此字段
又想兼顾索引体积,可以开启索引压缩
_size: 整个_source字段的字节数大小,需要单独安装一个插件才能展示,详情参见:
_source是可以被禁用的,不过禁用之后部分功能再支持:
需要注意的是如果指定了使用自己的路由规则,如果两个文档_id参数一样,但是路由规则值不一样,有可能造成这两条数据被分发到不同的shard,所以在使用自己的路由规则时
注意_id参数的唯一性。
个人介绍:
高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。
本文首发在 转载请注明!