聚合查询
sql语句中的having 条件在es聚合中的应用
1.Having count(*) > 1在Elasticsearch 中对应的是 Bucket Filter 聚合,语句如下所示:
GET /spu/_search
{
"size": 0,
"aggs": {
"models": {
"terms": {
"field": "categoryId"
},
"aggs": {
"spu_count": {
"cardinality": {
"field": "id"
}
},
"spu_count_filter": {
"bucket_selector": {
"buckets_path": {
"spuCount": "spu_count"
},
"script": "params.spuCount>1"
}
}
}
}
}
}
示例返回结果如下:
{
"took": 39,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,