【问题标题】: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
【解决方案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