query 先去各个分片获取排序和排名数据,然后把各个分片获取到的结果合并。取size个文档,这样再去各个分片获取分摊的结果就可以了。
会进入到RestSearchAction的prepareRequest来准备请求
先看对search请求的解析,调用方法parseSearchRequest。
1.校验request请求中的索引index字符串不为空,然后转换成indices字符数组
2.设置批量大小,预过滤分片大小,最大并行分片请求数量; 把请求涉及的本集群shard列表,和远程集群的shard列表进行合并
3.解析出searchType,默认为QUERY_THEN_FETCH
4.解析出searchSource,也就是对query的解析,包含各项参数from,size, sort, suggest_field