【发布时间】:2016-01-05 14:55:40
【问题描述】:
我遇到了一个问题,我需要对弹性搜索中的聚合结果应用一些过滤器。
例如,假设以下是字段 event_name、位置、时间、user_id
现在我的要求是获取在过去一个月内执行特定操作(比如说“logged_in”)至少 5 次的用户 ID。我能够获得在过去一个月内登录的用户。但是如何进一步过滤结果呢?
我写的查询是:
{
"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
我需要对上述结果应用过滤器。我该怎么做?
【问题讨论】:
-
您只想要 doc_count >= 到 5 的 user_id 吗?
-
doc_count >= 5 只是一个例子。理想情况下,我想应用任何过滤器。就像范围过滤器一样,我希望用户执行了 2 到 5 次特定操作。
标签: elasticsearch