ES分页查询
方案一 from、size:
最简单的方案,使用from、size进行分页查询.
GET index1/_doc/_search
{
"query":{
"match_all":{}
}
,
"_source":["filed1","filed2","time_sort"],
"sort":[
{
"time_sort":{
"order":"desc"
}
}],
"from":100,
"size":10
}
time_sort字段type为date。以时间为倒序,从第100往后获取10条记录。_sourec为需要展示的字段
该方案的问题是深分页内存占用过多,即from+size过大。from+size默认最大为10000,超过这个限制会报错:
可以在建立index时或者put修改settings项配置index.max_result_window( 索引能够查询到最大数据量,from+size深分页的最大条数,默认是10000,适当限制这个值可以防止深分页内存占用过多,如果全量导出,需要使用Scroll游标办法。)
使用场景中有深分页需求建议选用其他方案。