Elasticsearch strange terms aggregation

2019-08-05 01:13发布

There are strange terms in aggregation, if another mapping contains same property name of different type:

MAPPING

{
  "mappings" : {
    "access" : {
      "properties" : {
        "cache" : { "type" : "string" }  
      }
    },
    "foo" : {
      "properties" : {
        "foobar" : { "type" : "float" },
        "cache"  : { "type" : "integer" }
      }
    }
  }
}

BULK DATA

{"create":{"_type":"foo"}}
{"foobar":[63.8828,66.3633,221.09,736.824,11.4336],"cache":[0,1536000]}

QUERY

curl -XGET "http://localhost:9200/test/access/_search?pretty=1" -d '{
    query : { match_all : {} },
    aggs : {
        testagg : {
            terms : { 
                field           : "cache", 
                min_doc_count   : 0
            }
        }
    }
}'

RESULT

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "testagg" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [ {
        "key" : "`\b\u0000\u0000\u0000\u0000",
        "doc_count" : 0
      }, {
        "key" : "`\b\u0000]`\u0000",
        "doc_count" : 0
      }, {
        "key" : "h\u0004\u0000\u0000\u0000",
        "doc_count" : 0
      }, {
        "key" : "h\u0004\u0000.p",
        "doc_count" : 0
      }, {
        "key" : "p\u0002\u0000\u0000",
        "doc_count" : 0
      }, {
        "key" : "p\u0002\u0000\u0017",
        "doc_count" : 0
      }, {
        "key" : "x\u0001\u0000",
        "doc_count" : 0
      } ]
    }
  }
}

NO AGG QUERY

curl -XGET 'http://localhost:9200/test/_search?pretty=1'
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "failed" : 0
  },
  "hits" : {
    "total" : 1,
    "max_score" : 1.0,
    "hits" : [ {
      "_index" : "test",
      "_type" : "foo",
      "_id" : "AUzS6wyGwkgefuU3DR2R",
      "_score" : 1.0,
      "_source":{"foobar":[63.8828,66.3633,221.09,736.824,11.4336],"cache":[0,1536000]}
    } ]
  }
}

I wonder why i get these strange terms when I aggregate the empty access mapping... Is there something wrong with my structure or probably a bug in Elasticsearch?

1条回答
淡お忘
2楼-- · 2019-08-05 01:23

I found your question via a google search - you and I are running into the same problem.

Unfortunately, we're both suffering from this bug: https://github.com/elastic/elasticsearch/issues/8614 - identical field names in different mappings need to share the same type.

查看更多
登录 后发表回答