1. 深度分页
1.1 请求第9990~10000条之间的10条数据
成功请求,没有报错
1.2 请求9999~10009之间的10条数据
报错如下,es指出请求的最大数据不能超过10000,但是我们数据达到了10009。请往下看
这是由于es拉取数据是这么拉取的:
1.3 深度分页:
从每个shard中拉取总数10009条,最后在汇总成30027条数据,再对30027条数据进行排序,然后,再从30027条数据中取出9999-10009之间的10条数据(分页),返回给用户。最后再抛弃30027条数据。这样的话,性能就会有很大的损耗。
那么,es就做了限制,查询数据不能超过10000条,否则对性能就有很大的影响。
1.4 淘宝是怎么解决深度分页带来的问题的?