分页为什么要从每个分片上拿到10000条 然后取10个

分页为什么要从每个分片上拿到10000条 然后取10个

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
慕容9198694 2020-08-07 07:12:26

假设有3w条数据,有3个节点,每个节点上分配1w条数据。如果要查询排序为9991-10000的10条数据,你要查询的实际是3w条数据中排序为9991-10000的10条数据。问题就来了,我怎么知道排序为9991-10000的10条数据在哪些节点。所以就需要从三个节点分别取出前10000条数据,合并在一起,从而找出排序为9991-10000的数据。建议看下归并算法,有助于理解

雪海觅隐香 2020-07-28 11:54:44

个人觉得还是为了更加均衡的查询出相关性匹配的数据,既然要拿到10000条数据,那就每个分片中先进行相关性搜索匹配出10000条,再结合所有分片上取到的数据根据相关性再一次整合,最后拿到需要的10条数据,只是个人浅薄的理解!

风间影月 2020-05-21 21:44:06

他就是这样的机制啊,因为数据分片在不同的node里,所以在每个分片里都需要执行查询操作,查询出来以后再做排序合并显示

  • 老师,想接着这个同学的问题问一下: 1. 如果前端翻页了,那么就会有一个新的request到es是么? 2. es有相应的cache没呢?比如说,第一次搜索出来的结果有1000条,但是只返回给前端的10条(0-9),那么剩下的会被cache起来么?想前端点击下一页的时候,es需要重新发一个request,搜索出第一次搜索到的1000条呢,还是可以直接从cache里读取10-19返回给前端呢?
    2020-10-09 13:57:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师