在Elasticsearch中获得最高聚合

时间:2018-11-26 10:41:04

标签: elasticsearch aggregation

我正在尝试使用Elasticsearch查询查找不同路径参数的数量

{
    "size":0,
    "aggs" : {
        "genres" : {
            "terms" : {
              "field" : "path.keyword"
            }
        }
}

但是,它没有返回计数最高的路径。它返回带有计数的随机10条路径。为了获得最高频率的路径,我将其修改为

{
    "size":0,
    "aggs" : {
        "genres" : {
            "terms" : {
              "field" : "path.keyword"
            }
        },
        "aggs": {
            "top_hits" : {
              "size":11
            }
        }
    }
}

但是它不会改变以前的响应,而是添加一些新文档作为响应。我找不到获取最高频率的方法。请提出一些建议。

1 个答案:

答案 0 :(得分:0)

可以通过设置order参数来自定义存储桶的顺序。默认情况下,存储桶按其 doc_count 降序排列。可以按照以下说明更改此行为: see

GET _search
{
  "size": 0, 
  "aggs": {
    "genres": {
      "terms": {
        "field": "path.keyword",
        "size": 100,
        "order" : { "_count" : "asc" }
      }
    }
  }
}