es对子文档聚合之后,像mysql一样having
时间: 2023-07-18 12:49:26 浏览: 64
Like ado Lib (MYSQL)
4星 · 用户满意度95%
在Elasticsearch中,可以使用聚合查询来对子文档进行聚合。对于聚合查询的结果,可以使用bucket selector pipeline aggregation来进行过滤,类似于MySQL中的having子句。bucket selector pipeline aggregation可以根据指定的条件过滤掉不符合条件的bucket,只保留符合条件的bucket。例如,可以使用以下查询来对子文档进行聚合,并且使用bucket selector pipeline aggregation来过滤掉count小于2的bucket:
```
{
"size": 0,
"aggs": {
"my_buckets": {
"composite": {
"sources": [
{ "field": "field1" }
]
},
"aggs": {
"count": {
"value_count": {
"field": "field2"
}
},
"bucket_selector": {
"bucket_selector": {
"buckets_path": {
"count": "count"
},
"script": "params.count >= 2"
}
}
}
}
}
}
```
这个查询会对field1进行聚合,并且在每个bucket中计算field2的count。然后,使用bucket selector pipeline aggregation来过滤掉count小于2的bucket。
阅读全文