怎样进行Elasticsearch 7.7 的异步搜索原理解析

技术怎样进行Elasticsearch 7.7 的异步搜索原理解析怎样进行Elasticsearch 7.7 的异步搜索原理解析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望

如何分析Elasticsearch 7.7的异步搜索原理,相信很多没有经验的人都不知所措。因此,本文总结了问题产生的原因和解决方法,希望大家可以通过这篇文章来解决这个问题。

Elasticsearch版本带来了一项新功能。搜索过程允许异步执行。客户端发送搜索请求后,弹性搜索服务器向客户端返回一个id。稍后,客户端使用该id来获取搜索进度,并支持返回“部分”结果。这对于UI交互相关的查询请求是非常友好的,比如绘图过程可以分步显示。

00-1010异步搜索使用起来非常简单,只需使用新的API,其余与_search请求相同:

POST /_async_search返回的结果中将有几个新字段:

id:根据这个id获取后续查询进度。is_partial:当查询完成时,此字段指示查询是在所有片段上成功执行还是失败。is_running:指示搜索过程是否仍在运行。

如果搜索很快完成,则_async_search的响应将包含完整的搜索结果。默认情况下,它将等待1秒钟,这由参数wait_for_completion_timeout控制。如果超过此时间,将根据id获得搜索进度(或结果):

GET/_ async _ search/fmrlde 8 zreveuza2zvpuegs2 ejffeamkz 5 qtvrstzsavn 3 wlnfvmtlwhjsdzoxmdc=$ ' ' cn=这里考虑得很周到。开启用户认证后,每个人只能得到自己提交的异步搜索结果,别人是看不到的。默认情况下,搜索结果保存5天,并由keep_alive参数控制。

同样,您可以手动删除此异步搜索请求,如果搜索仍在进行中,它将被取消。

delete/_ async _ search/fmrlde 8 zreveuza2zvpuegs2 ejffeamkz 5 qtvrstzsavn 3 wlnfvmtlwhjsdzoxmdc=

基本用法

异步搜索和同步搜索的实现原理没有太大区别,按数据节点搜索的过程是一样的。唯一不同的是,协调节点最初必须等待整个进程被处理后才能返回客户端,但现在它只等待1秒钟(由wait_for_completion_timeout参数控制)。如果整个过程在1秒内完成,最终结果将返回给客户端。超过1秒后,将生成一个id并返回给客户端。

通常情况下,数据节点在执行完一个片段的查询后,会返回一个完整片段级的Response,不会统计一个点,返回一个点,所以Response的单位仍然是片段级。但是,batched_reduce_size默认设置为5,在同步搜索中默认为512。较小的值可以尽快向客户端返回一些结果。

为了将查询结果保存5天,es将设置一个名为。异步搜索,并将查询结果保存到其中。但是,如果搜索过程在wait_for_completion_timeout超时内结束,所有结果集都将在当前请求中返回,并且不会保存到。异步搜索索引。

实现原理

异步搜索返回一个id,然后根据这个id获取进度。如何获取该任务信息?而进度和结果集需要存储在哪里是一个需要考虑的问题。es会把它放在两个地方:

如果搜索过程尚未完成,则从协调节点的taskmanager获取进度信息。

如果搜索完成,进度和结果集将保存在名为的索引中。异步搜索。

第一种情况,相当于进度信息存储在协调节点的内存中,这个信息只存在于整个集群的单个节点中。所以,当你的异步搜索请求发送到node1,获取进度的请求发送到node2(比如负载均衡器转发或者客户端自己轮询)时,如何获取node2中的进度信息?答案是node2会在收到GET请求后将请求转发给node1以获取进度。那么节点2如何知道异步搜索请求被发送到节点1呢?实际上,所有这些信息都存储在异步搜索请求返回的id中,所以现在您知道它为什么这么长了:

id ' : ' fmrlde 8 z rev uza 2 z puebgs 2 EJ jffeamkz 5 qtvrstzsavn 3 wlnfvmtlwhjsdzomdc='贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强!贺南强身份证明(identification)号-什么64号基地{ fnsimheibord 1 sh ad1 pos(200,288)}这是我的错{ fnsimheibord 1 sh ad1 pos(200,288)}我的错{ fnsimheibord 1 sh ad1 pos(200,288)}我的错,范仲淹把范仲淹给范仲淹:

docIdo 40个

搜索结果保存 .async-search 中时,该异步搜索任务结果在 .async-search 中的 docId

  • nodeId 接收 asyncsearch 搜索请求的节点的 nodeId

  • id 在 taskManager 中的任务 id

  • 有了这些信息之后,GET 搜索进度的流程就比较清楚了:

    怎样进行Elasticsearch 7.7 的异步搜索原理解析

    协调节点收到 GET /_async_search/id 请求后,根据 id解码出上述三个信息,先判断执行_async_search的节点是否本节点,如果不是本节点就直接根据解码出的nodeId给目标节点发送RPC 请求来获取这个信息;如果是本节点,就根据任务 id从自己的 taskManager 中获取,或者根据docId执行一个普通的 GET doc请求,从 .async-search 索引中获取。

    .async-search 索引的过期删除

    索引 .async-search中的数据默认保存5天,不过大家都知道 es 里没有 TTL 的概念,那么数据的过期删除如何实现?实际上 es 内部会定期对该索引执行 DeleteByQuery:

    DeleteByQueryRequest toDelete = new DeleteByQueryRequest(INDEX)
                   .setQuery(QueryBuilders.rangeQuery(EXPIRATION_TIME_FIELD).lte(nowInMillis));

    当节点收到集群状态时,在 clusterChanged 中驱动周期线程执行清理,默认1小时执行一次,由参数 async_search.index_cleanup_interval 控制,该清理操作由 GENERIC 线程池执行,并且只会在 .async-search 索引的0号主分片所在的节点执行,不会在所有节点都执行清理工作。

    看完上述内容,你们掌握怎样进行Elasticsearch 7.7 的异步搜索原理解析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

    内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/132973.html

    (0)

    相关推荐

    • 电脑手机互传文件,手机同电脑怎么互传文件

      技术电脑手机互传文件,手机同电脑怎么互传文件日常生活中,我们经常会遇到手机和电脑互传文件的场景,可以使用传统的数据线传送方法,也可以使用软件进行传输电脑手机互传文件。方法一:使用数据线一直都是使用手机和电脑进行文件传输的

      生活 2021年10月24日
    • 我今年13岁了用英语怎么说,“我今年几岁了”英文怎么说

      技术我今年13岁了用英语怎么说,“我今年几岁了”英文怎么说翻译我今年13岁了用英语怎么说:How old I am单词分析:1、how
      英 [ha奭 美 [ha奭
      adv.怎样;健康状况如何;到何种地步;以任何方

      生活 2021年10月29日
    • 稳压二极管工作原理,稳压二极管的工作原理是什么

      技术稳压二极管工作原理,稳压二极管的工作原理是什么稳压管的工作原理:稳压管也是一种晶体二极管,它是利用PN结的击穿区具有稳定电压的特性来工作的。稳压管在稳压设备和一些电子电路中获得广泛的应用。把这种类型的二极管称为稳压管

      生活 2021年10月24日
    • JSP怎样连接Mysql数据库

      技术JSP怎样连接Mysql数据库这篇文章主要为大家展示了“JSP怎样连接Mysql数据库”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JSP怎样连接Mysql数据库”这篇文

      攻略 2021年11月1日
    • scrapy数据存储在mysql数据库的方式是什么

      技术scrapy数据存储在mysql数据库的方式是什么scrapy数据存储在mysql数据库的方式是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能

      攻略 2021年12月4日
    • 40岁女人高贵优雅网名,四十岁的女人最好听的微信名字

      技术40岁女人高贵优雅网名,四十岁的女人最好听的微信名字四十岁的女人一般都比较的成熟,很多事情都会特别成熟的思考,事情处理方式也都比较成熟。那么四十岁的女人有哪些好听的微信昵称,有哪些比较合适的微信名字呢?接下来就和小编

      生活 2021年10月28日