ES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)

每一个文档都属于一个type并且拥有一个_id,_id字段不会被索引,但可以通过_uid字段来访问该字段。_id相当于一个document的身份编号。
_id在特定query中可以被获取,如term, terms, query_string, simple_string,但在聚合统计、自定义脚本以及排序时,不可以被使用,此时只能通过_uid来代替。
示例1: 通过term/terms/query_string访问_idES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)_第1张图片

  • 示例2: 对_id进行排序
    ES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)_第2张图片
    可以看到,es会提示_id字段并不能用于排序;
  • 示例3: 现在我们将_id字段修改为_uid,利用_uid排序
    ES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)_第3张图片
    _id与_uid的联系
    _uid实际上是index下的type与_id拼接,格式为_uid=type#_id假设我们有一个accout的index,其中有一个account的类型,则对其中_id为1的doc,它的_uid为: account#1
    示例4:通_uid访问指定doc
    ES系列-Mapping-Meta_Fields-_id与_uid字段(索引、映射、字段)_第4张图片

你可能感兴趣的:(Elasticsearch)