如何使用From / Size控制elasticsearch聚合结果?

时间:2017-03-27 04:46:32

标签: elasticsearch pagination elasticsearch-plugin

我一直在尝试在elasticsearch术语聚合中添加分页。在查询中,我们可以添加分页,如

 {
    "from": 0, // to add the start to control the pagination
    "size": 10,
    "query": { } 
 }

这很清楚,但是当我想为聚合添加分页时,我读了很多关于它的内容,但我无法找到任何内容,我的代码看起来像这样,

{
  "from": 0,
  "size": 0,
  "aggs": {
    "group_by_name": {
      "terms": {
        "field": "name",
        "size": 20
      },
      "aggs": {
        "top_tag_hits": {
          "top_hits": {
            "size": 1
          }
        }
      }
    }
  }
}

有没有办法用函数或任何其他建议创建分页?

1 个答案:

答案 0 :(得分:2)

好像你可能想要分区。 From the docs:

  

有时在单个请求/响应对中处理的唯一术语太多,因此将分析分解为多个请求会很有用。这可以通过在查询时将字段的值分组到多个分区并在每个请求中仅处理一个分区来实现。

基本上您添加了"include": { "partition": n, "num_partitions": x },,其中n是页面,x是页数。

不幸的是,此功能最近才被添加。如果可以在产生此功能的GitHub Issue上相信标记,那么您至少需要使用Elasticsearch 5.2或更高版本。