deep pageing
在分页的时候会出现deep pageing 就是说搜索的特别深,比如共有60000条数据,每个shard上分到了20000条数据,每页是10条
数据,这个时候,你要搜索到第1000页
每个shard,其实都要返回的是最后十条数据,看起来好像是每个shard上的10001-10010,10条数据,不是这样理解的
你的请求首先可能打倒不包含这个index的shard的node上去,这个node就是coordinating node,那么这个coordinate node就会将
搜索请求转发到index的三个shard所在的node上去
比如说要搜索60000条数据中的第1000页,实际上每个shard都要将内部的20000条数据中的第10001-10010条数据,拿出来,不是
才10条,是10010条数据,3个shard,每个shard都返回10010条数据给coordinate node,coordinate node总共会收到30030条数
据,然后在这些数据中进行排序,_score,相关度分数,然后取到排位最高的前10条数据,其实就是我们要的最后的1000页的10条
数据
搜索的过程中,就需要在coordinate node上保存大量的数据,还要进行大量的排序,排序后,再取出对应的那一页,所以这个
过程,即耗费网络带宽,耗费内存,还耗费cpu,所以deeping paging的性能问题,我们尽量避免出现这种操作