当前位置:   article > 正文

Elasticsearch Search API 概述与URI Search_elasticsearch查询api

elasticsearch查询api
  • private SearchType searchType = SearchType.DEFAULT:搜索类型。
  1. QUERY_THEN_FETCH

首先根据路由算法向相关分片(多个)发送请求,此时只返回documentId与一些必要信息(例如用于排序等),然后对各个分片的结果进行汇聚,排序,然后选取客户端指定需要获取的数据条数(top n),然后根documentId再向各个分片请求具体的文档信息。首先根据路由算法向相关分片(多个)发送请求,此时只返回documentId与一些必要信息(例如用于排序等),然后对各个分片的结果进行汇聚,排序,然后选取客户端指定需要获取的数据条数(top n),然后根据documentId再向各个分片请求具体的文档信息。

  1. QUERY_AND_FETCH

在5.4.x版本开始废弃,是直接向各个分片节点请求数据,每个分片返回客户端请求数量的文档信息,然后汇聚全部返回给客户端,返回的数据为客户端请求数量size * (路由后的分片数量)。在5.4.x版本开始废弃,是直接向各个分片节点请求数据,每个分片返回客户端请求数量的文档信息,然后汇聚全部返回给客户端,返回的数据为客户端请求数量size * (路由后的分片数量)。

  1. DFS_QUERY_THEN_FETCH

在开始向各个节点发送请求之前,会进行一次词频、相关性的计算,后续流程与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几个通用的参数:

  • timeout

查询的超时时间。

  • from

查询开始的偏移量,用于分页查询,类似于关系数据库的分页的start。默认值为0。

  • size

批量获取条数,用于分页查询。

  • search_type

查询类型,6.4.0只支持QUERY_THEN_FETCH与DFS_QUERY_THEN_FETCH。

  • request_cache

查询缓存,如果设置为false,取决于index级别的设置,将在索引管理API时详细讲解,其官方文档地址:

https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-indices.html

  • allow_partial_search_results

是否允许部分成功,例如一个查询请求,需要向3个分片发出请求,如果只有两个分片成功返回结果,另外一个出现故障,如果设置false,则会返回

整体失败,如果设置为true,则会成功部分结果,默认为true。

  • terminate after

一个查询为每个分片最多收集的文档数,当达到该数量是,查询会提前结束。

  • batched_reduce_size

在协调节点上应该立即减少一次请求需要访问的分片数量,如果一次请请求需要汇聚太多节点上的数据,容易造成内存消耗,该值可作为一个保护

机制,控制一个请求同一时间并发访问的最大分片数量,默认为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开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

光给面试题不给答案不是我的风格。这里面的面试题也只是凤毛麟角,还有答案的话会极大的增加文章的篇幅,减少文章的可读性

Java面试宝典2021版

最常见Java面试题解析(2021最新版)

2021企业Java面试题精选

链图片转存中…(img-N0s0m8sq-1710397851790)]

2021企业Java面试题精选

[外链图片转存中…(img-AxIU5d62-1710397851790)]

[外链图片转存中…(img-JR7LkGie-1710397851791)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/457692
推荐阅读
相关标签
  

闽ICP备14008679号