【问题标题】:How to paging aggregation result in ElasticSearch?如何在 ElasticSearch 中分页聚合结果?
【发布时间】:2018-06-22 16:30:01
【问题描述】:

当我执行下面的查询时,如何对aggs结果进行分页?

有没有办法将aggs结果放到json结果中的hits部分?

POST  http://myElastic.com/test/e1,e2,e3/_search
{
  "aggs":{
    "dedup" : {
      "terms":{
        "field": "id"
       },
       "aggs":{
         "dedup_docs":{
           "top_hits":{
             "size":1
           }
         }
       }    
    }
  }
}

【问题讨论】:

标签: elasticsearch aggregation ranking


【解决方案1】:

基于 Elasticsearch github 网站上的以下问题,我认为您的要求是不可能的:

https://github.com/elastic/elasticsearch/issues/4915

不过,这似乎是一个常见的要求。添加您自己的反馈,他们可能会设法添加。

【讨论】:

    【解决方案2】:

    我在找到之前进行了搜索,并且在研究过程中遇到了几个职位,因此我为将与我进行相同旅程的人发布了一个新答案。

    我们可以将结果划分如下:

    {
      "aggs":{
        "group" : {
          "terms":{
            "field": "id",
            "size":5000,
            "include": {
              "partition": 1,
              "num_partitions": 1000
            }
           },
           "aggs":{
             "dedup_docs":{
               "top_hits":{
                 "size":1
               }
             }
           }    
        }
      }
    }
    
    // size:5000 : return 5.000 results per page
    // num_partitions:1000 : return 1.000 pages of results
    // partition:1 : return page index 1 (start at 0)
    
    // size:5000,num_partitions:1000,partition:1 : returns results from 5.000 to 9.999
    // size:5000,num_partitions:1000,partition:2 : returns results from 10.000 to 14.999
    // size:5000,num_partitions:1000,partition:3 : returns results from 15.000 to 19.999
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2019-07-12
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 1970-01-01
      相关资源
      最近更新 更多