Elasticsearch 5:聚合最新n项的属性值

时间:2017-08-27 18:44:28

标签: elasticsearch

我想在Elasticsearch中汇总(总和)n个最新项目的值。

我试过"热门歌曲" (按日期字段排序),但我无法聚合 - 它只返回了最新的n项。

我有以下查询来汇总所有项目'值,但我如何限制它 - 让我们说 - 20个项目,按日期字段排序?

http://mysearchdomain/index/type/_search?size=0
{
  "aggs": {
    "agg_name1": {
      "terms": {
        "field": "_parent",
        "size": 2000000
      },

      "aggs": {
        "agg_name2": {
          "terms": {
            "field": "myfield"
          },

          "aggs": {
            "agg_name3": {
              "sum": {
                "field": "fieldToAggregate"
              }
            }
          }

        }
      }

    }
  }

}

1 个答案:

答案 0 :(得分:0)

就我可以从文档中评估而言,这似乎是不可能的。您正在尝试过滤已经聚合的数据(每个“agg_name1”),这似乎是主要问题;并且top_hits对已经聚合的数据集无效。

正如我所看到的,最好的选择是为每个“agg_name1”发出top_hits聚合请求,这可能意味着您可能拥有更多请求(数量与“agg_name1”相同)。 / p>