我只是想仔细检查一下我是否错过了什么。在ElasticSearch 1.4中,无法对聚合结果运行任何类型的服务器端过滤,对吗?我有一个平均百分比聚合(0 ..),我想删除结果中高于0.9的所有内容。
使用ES 2.0 reducer,这似乎是可能的,或者现在在客户端,但这需要非常高的计数(最后所有这些)来解决这个问题。
我是否有机会错过ES 1.4来实现这一目标?
这是一个例子:
{
"aggs": {
"group": {
"terms": {
"field": "contextRaw.site_city",
"order": {
"result": "desc"
}
},
"aggs": {
"result": {
"avg": {
"field": "somePercentage"
}
}
}
}
}
}
结果是现在小水桶也只占1.0的百分比,而我对那些不感兴趣,但是在0.9以下的那些。
"aggregations": {
"group": {
"doc_count_error_upper_bound": -1,
"sum_other_doc_count": 5924518,
"buckets": [
{
"key": "value A",
"doc_count": 3921,
"result": {
"value": 1
}
},
{
"key": "value B",
"doc_count": 312,
"result": {
"value": 1
}
},
答案 0 :(得分:1)
我不确定最好的地方,它在official forums得到了解答。
1.4中的没有任何东西可以过滤掉返回的桶 客户端的聚合。使用新管道进入2.0 聚合有一个bucket_selector聚合,它将允许 你可以通过
进行这种过滤