elasticsearch分页分为两种:浅分页和深分页
首先来看下浅分页 实现方式就是from和size控制
假如查询的索引有5个分片,from=0 size=10,此时es会将查询节点请求分配到其余分片所在节点。
其余节点会返回自己数据结果集中的top10,然后返回给请求节点。请求节点接受到的数据集就有5*10个
大小,然后再从中选取top10个返回。
如果我们查询条件是from=100,size=10,那么每个分片节点都要返回查询结果集的top1010,最终请求
节点会收到5050个数据,然后在筛选出top10个,丢弃其余的数据。由此可以,随着分页的深度,查询的性能
会越来越低。
如果是大量数据的查询请求,建议用深度分页,即scroll,每次会记录查询游标,性能会好很多。具体实现
大家可以在es官方文档查看。