嵌套类型字段内的字段聚合
Aggregation of fields inside nested type field
我想聚合位于 nested
类型字段内的 keyword
类型字段。嵌套字段的映射如下:
"Nested_field" : {
"type" : "nested",
"properties" : {
"Keyword_field" : {
"type" : "keyword"
}
}
}
我用来聚合的查询部分如下:
"aggregations": {
"Nested_field": {
"aggregations": {
"Keyword_field": {
"terms": {
"field": "Nested_field.Keyword_field"
}
}
},
"filter": {
"bool": {}
}
},
}
但这并没有返回正确的聚合。即使存在 Keyword_field
值现有文档,查询 returns 0 个存储桶。所以,我的聚合查询有问题。谁能帮我找出问题所在?
我认为您需要在其中提供嵌套路径。这在 ES 5 中有效,但看起来您使用的是基于 "aggregations" 与 "aggs" 的 6,所以如果它不起作用请告诉我,我会放弃这个答案。试一试:
{
"aggregations": {
"nested_level": {
"nested": {
"path": "Nested_field"
},
"aggregations": {
"keyword_field": {
"terms": {
"field": "Nested_field.Keyword_field"
}
}
}
}
}
}
我想聚合位于 nested
类型字段内的 keyword
类型字段。嵌套字段的映射如下:
"Nested_field" : {
"type" : "nested",
"properties" : {
"Keyword_field" : {
"type" : "keyword"
}
}
}
我用来聚合的查询部分如下:
"aggregations": {
"Nested_field": {
"aggregations": {
"Keyword_field": {
"terms": {
"field": "Nested_field.Keyword_field"
}
}
},
"filter": {
"bool": {}
}
},
}
但这并没有返回正确的聚合。即使存在 Keyword_field
值现有文档,查询 returns 0 个存储桶。所以,我的聚合查询有问题。谁能帮我找出问题所在?
我认为您需要在其中提供嵌套路径。这在 ES 5 中有效,但看起来您使用的是基于 "aggregations" 与 "aggs" 的 6,所以如果它不起作用请告诉我,我会放弃这个答案。试一试:
{
"aggregations": {
"nested_level": {
"nested": {
"path": "Nested_field"
},
"aggregations": {
"keyword_field": {
"terms": {
"field": "Nested_field.Keyword_field"
}
}
}
}
}
}