我有一个ES查询,它聚合来自监控工具的数据。
目前,我已经找到了每个相关组中的文档数量(通过“externalId”)。
现在,我希望按每个组中的记录数过滤结果。 (类似于SQL中的“HAVING”子句,doc_count> 0)
例如,找到存储了一次以上的“externalId”。
这是我的ES查询:
{
"query":
{
"match" :
{
"method" : "METHOD_NAME"
}
},
"size":0,
"aggs":
{
"group_by_external_id":
{
"terms":
{
"field": "externalId"
}
}
}
}
结果如下所示:
"aggregations": {
"group_by_external_id": {
"doc_count_error_upper_bound": 5,
"sum_other_doc_count": 53056,
"buckets": [
{
"key": "6088417651626873",
"doc_count": 1
},
{
"key": "6088417688232882",
"doc_count": 1
}
答案 0 :(得分:1)
条款汇总可以使用min_doc_count
option。例如,
"aggs":
{
"group_by_external_id":
{
"terms":
{
"field": "externalId",
"min_doc_count": 2
}
}
}