我有一个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
}
最佳答案
您可以使用术语汇总中的 min_doc_count
option。例如,
"aggs":
{
"group_by_external_id":
{
"terms":
{
"field": "externalId",
"min_doc_count": 2
}
}
}
关于elasticsearch - Elasticsearch筛选汇总结果(SQL HAVING),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42087918/