【发布时间】:2021-05-11 10:57:15
【问题描述】:
我正在尝试设置一个搜索查询,该查询应该通过多级嵌套字段组合聚合集合,并从该集合中给我一些子聚合指标。我能够按预期使用其存储桶获取复合聚合,但子聚合指标带有 0 用于所有存储桶。我不确定我是否未能正确指出子聚合应考虑哪些字段,或者是否应将其放置在查询的不同部分中。
我的收藏类似于以下内容:
{
id: '32ead132eq13w21',
statistics: {
clicks: 123,
views: 456
},
categories: [{ //nested type
name: 'color',
tags: [{ //nested type
slug: 'blue'
},{
slug: 'red'
}]
}]
}
您可以在下面找到我迄今为止尝试过的内容。所有存储桶都带有 clicks 总和为 0,即使所有文档都有一个集合 clicks 值。
GET /acounts-123321/_search
{
"size": 0,
"aggs": {
"nested_categories": {
"nested": {
"path": "categories"
},
"aggs": {
"nested_tags": {
"nested": {
"path": "categories.tags"
},
"aggs": {
"group": {
"composite": {
"size": 100,
"sources": [
{ "slug": { "terms" : { "field": "categories.tags.slug"} }}
]
},
"aggregations": {
"clicks": {
"sum": {
"field": "statistics.clicks"
}
}
}
}
}
}
}
}
}
}
到目前为止我的响应正文:
{
"took" : 6,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 1304,
"relation" : "eq"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"nested_categories" : {
"doc_count" : 1486,
"nested_tags" : {
"doc_count" : 1486,
"group" : {
"buckets" : [
{
"key" : {
"slug" : "red"
},
"doc_count" : 268,
"clicks" : {
"value" : 0.0
}
}, {
"key" : {
"slug" : "blue"
},
"doc_count" : 122,
"clicks" : {
"value" : 0.0
},
.....
]
}
}
}
}
}
【问题讨论】:
标签: elasticsearch elasticsearch-aggregation