ES中搜索请求的讲解

本文详细解析了Elasticsearch(ES)中搜索请求的执行过程,包括请求发送到协调节点、构建优先级队列、副本分片如何提升搜索效率、文档获取以及分页策略。特别指出,深度分页可能导致高带宽、内存和CPU消耗的问题。
摘要由CSDN通过智能技术生成

ES中一个搜索请求是怎么流转的
1、搜索请求发送到某一个coordinate node,构建一个priority queue,长度以paging操作from和size为准,默认为10
2、coordinate node将请求转发到所有shard,每个shard本地搜索,并构建一个本地priority queue
3、各个shard将自己的priority queue返回给coordinate node ,并构建一个全局的priority queue
4、replica shard如何提升搜索吞吐量
一次请求要打到所有shard的一个replica/primary上去,如果每个shard都有多个replica,那么同时并发过来的搜索请求可以同时打到其他的replica上去
5、coordinate node构建完priority queue之后,获取到的是一堆doc id等信息,就发送mget请求去所有shard上获取对应的document
6、各个shard将document返回给coordinate node
7、coordinate node将合并后的document结果返回给client客户端
8、一般搜索,如果不加from和size,就默认搜索前10条,按照_score排序

例如:
coordinate node ,根据from和size参数,构建一个priority queue大小就是from+size,from=0,size=10,构建一个0+10大小的队列,from=10000,size=10,构建一个10000+10=10010大小的队列,将请求转发到这个index对应的所有sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值