是否可以用搜索词对词聚合结果进行分页?

时间:2019-06-13 13:00:47

标签: elasticsearch elasticsearch-aggregation

是否可以在带有搜索词的词聚合查询中使用分页?

我需要对以下查询的结果进行分页,我找不到任何解决方案?

{
    "sort": [{
        "create_date": {
            "order": "desc"
        }
    }],
    "query": {
        "bool": {
            "must": []
        }
    },
    "aggs": {
        "genres": {
            "terms": {
                "field": "mentions.keyword",
                "include": "insta.*"
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用sizefrom告诉引擎每次您返回下一页时都返回该范围内的文档。您的服务设计中有两个变量,无论调用该服务的人,都还应该传递两个变量值(基本上是from和limit的文件)

   {
     "from": from,
     "size": limit,
     "sort": [{
         "create_date": {
             "order": "desc"
          }
     }],
   "query": {
     "bool": {
        "must": []
    }
},
"aggs": {
    "genres": {
        "terms": {
            "field": "mentions.keyword",
            "include": "insta.*"
        }
    }
   }
 }

如果您通过mysearch等服务公开了此查询,则可以这样调用服务

 mysearch?searchTerm=theWord&from=0&limit=15

,在下一个调用中,您执行相同的操作,但是使用不同的fromlimit

  mysearch?searchTerm=theWord&from=16&limit=15

如果此信息还不够,请发布一些示例文档以供使用

答案 1 :(得分:0)

如果您试图在术语汇总中获取文档,则可以使用两个选项之一

  1. 就聚合而言,您可以使用分区对数据进行分页。 请参阅文档here

  2. 您可以使用composite聚合。 在复合聚集中,只能使用after键顺序访问数据。您将无法跳转页面。