赞
踩
首先根据路由算法向相关分片(多个)发送请求,此时只返回documentId与一些必要信息(例如用于排序等),然后对各个分片的结果进行汇聚,排序,然后选取客户端指定需要获取的数据条数(top n),然后根documentId再向各个分片请求具体的文档信息。首先根据路由算法向相关分片(多个)发送请求,此时只返回documentId与一些必要信息(例如用于排序等),然后对各个分片的结果进行汇聚,排序,然后选取客户端指定需要获取的数据条数(top n),然后根据documentId再向各个分片请求具体的文档信息。
在5.4.x版本开始废弃,是直接向各个分片节点请求数据,每个分片返回客户端请求数量的文档信息,然后汇聚全部返回给客户端,返回的数据为客户端请求数量size * (路由后的分片数量)。在5.4.x版本开始废弃,是直接向各个分片节点请求数据,每个分片返回客户端请求数量的文档信息,然后汇聚全部返回给客户端,返回的数据为客户端请求数量size * (路由后的分片数量)。
在开始向各个节点发送请求之前,会进行一次词频、相关性的计算,后续流程与QUERY_THEN_FETCH相同,可以看出,该查询类型的文档相关性会更高,但性能比QUERY_THEN_FETCH要差。
private String[] indices:待查询的索引库。
private String routing:路由字段值。
private String preference:复制组内倾向性。
private SearchSourceBuilder source:查询主体(rerquest body),后续会重点讲解。
private Boolean requestCache:是否开启查询缓存。
private Boolean allowPartialSearchResults:是否允许部分成功。
private Scroll scroll:滚动API(用于分页)
private int batchedReduceSize = DEFAULT_BATCHED_REDUCE_SIZE:批量归并size:默认为512
private int maxConcurrentShardRequests = 0:建议最大值别超过256,其核心含义待研究。
private int preFilterShardSize = 128,其核心作用待研究。
private String[] types:待查询的类型。
接下来再来重点关注一下查询API几个通用的参数:
查询的超时时间。
查询开始的偏移量,用于分页查询,类似于关系数据库的分页的start。默认值为0。
批量获取条数,用于分页查询。
查询类型,6.4.0只支持QUERY_THEN_FETCH与DFS_QUERY_THEN_FETCH。
查询缓存,如果设置为false,取决于index级别的设置,将在索引管理API时详细讲解,其官方文档地址:
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-indices.html
是否允许部分成功,例如一个查询请求,需要向3个分片发出请求,如果只有两个分片成功返回结果,另外一个出现故障,如果设置false,则会返回
整体失败,如果设置为true,则会成功部分结果,默认为true。
一个查询为每个分片最多收集的文档数,当达到该数量是,查询会提前结束。
在协调节点上应该立即减少一次请求需要访问的分片数量,如果一次请请求需要汇聚太多节点上的数据,容易造成内存消耗,该值可作为一个保护
机制,控制一个请求同一时间并发访问的最大分片数量,默认为512。
注意:search_type, request_cache 和allow_partial_search_results 这三个参数,必须查询url级别的参数(query-string parameters),如果使用Rest low Level API时需要特别留意。
2、URI Search
Elasticsearch支持使用URI请求模式来使用Search API,尽管有些参数无法使用,该模式主要还是用于测试,诸如使用CURL查询命令。URI Search示例如下:
GET twitter/_search?q=user:kimchy
URI Search支持如下参数:
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性
链图片转存中…(img-N0s0m8sq-1710397851790)]
[外链图片转存中…(img-AxIU5d62-1710397851790)]
[外链图片转存中…(img-JR7LkGie-1710397851791)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。