假设我有两个aggs:
GET .../_search
{
"size": 0,
"aggs": {
"foo": {
"terms": {
"field": "foo"
}
},
"bar": {
"terms": {
"field": "bar"
}
}
}
}
哪个返回以下内容:
...
"aggregations": {
"foo": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Africa",
"doc_count": 23
}
]
},
"bar": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Oil",
"doc_count": 23
}
]
}
}
我的问题是,我怎么知道“ foo”和“ bar”汇总表是否聚合了相同的23个文档?
我尝试在“ foo”和“ bar” aggs上添加一个子agg,以求和一个任意的数字字段,但这并不是万无一失的。
答案 0 :(得分:0)
您可以添加子聚合来聚合文档的标识字段,可以使用术语或复合聚合来执行此操作。使用术语时,需要提供尺寸。参见以下示例:
GET .../_search
{
"size": 0,
"aggs": {
"foo": {
"terms": {
"field": "foo"
},
"aggs" : {
"terms" : {
"field" : your_id_here
}
}
},
"bar": {
"terms": {
"field": "bar"
},
"aggs" : {
"terms" : {
"field" : your_id_here
}
}
}
}
}
然后您需要比较嵌套的聚合。
另一种方法是使用搜索查询过滤掉所需的文档。