我遇到了一个问题,我需要对弹性搜索中的聚合结果应用一些过滤器。
例如,假设以下是字段 event_name,location,time,user_id
现在我的要求是让最近一个月内执行了特定操作的用户ID(假设" logged_in")至少5次。我能够获得过去一个月内有过login_in的用户。但是如何进一步过滤结果呢?
我写的查询是:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"range":{
"time":{
"from": 1412312824,
"to": 1422142824
}
}
},
{
"term": {
"action": "logged_in"
}
}
]
}
}
}
},
"aggs": {
"result": {
"terms": {
"field": "user_id"
}
}
}
}
示例输出:
user_id, doc_count
1 10
2 25
3 1
4 2
我需要对上面的结果应用过滤器。我该怎么做?
答案 0 :(得分:1)
我相信您只需在条款汇总中添加min_doc_count
密钥,就像这样:
...
"aggs": {
"result": {
"terms": {
"field": "user_id",
"min_doc_count": 5
}
}
}
...