如果另一个映射包含不同类型的相同属性名称,则聚合中存在奇怪的术语:
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
} ]
}
}
}
没有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]}
} ]
}
}
我想知道为什么在聚合空访问映射时我会得到这些奇怪的术语...我的结构是否有问题或可能是Elasticsearch中的错误?
答案 0 :(得分:2)
我通过谷歌搜索找到了您的问题 - 您和我遇到了同样的问题。
不幸的是,我们都遇到了这个错误:https://github.com/elastic/elasticsearch/issues/8614 - 不同映射中的相同字段名称需要共享相同的类型。