怎样进行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月20日
    • 月亮思乡的古诗,关于月亮思乡的古诗有什么

      技术月亮思乡的古诗,关于月亮思乡的古诗有什么1、床前明月光,疑是地上霜月亮思乡的古诗。举头望明月,低头思故乡。(李白: 《静夜思》)2、乡心新岁切,天畔独潸然。老至居人下,春归在客先。岭猿同旦暮,江柳共风烟。已似长沙傅,

      生活 2021年10月23日
    • ps怎么添加笔刷,ps字体和笔刷怎么安装

      技术ps怎么添加笔刷,ps字体和笔刷怎么安装1下载的字体如何安装到PS里ps怎么添加笔刷?首先,打开我的电脑——控制面板——外观和主题——字体(或者找C:\WINDOWS\Fonts)然后,打开下载的解压包(确认你的电脑

      生活 2021年10月20日
    • 如何通过串口控制树莓派

      技术如何通过串口控制树莓派这篇文章给大家分享的是有关如何通过串口控制树莓派的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。通过串口控制树莓派需求在没有网络,没用键盘,没有显示器的情况下,控制树莓

      攻略 2021年11月20日
    • MAC和树莓派如何实现文件共享和TM备份

      技术MAC和树莓派如何实现文件共享和TM备份这篇文章给大家分享的是有关MAC和树莓派如何实现文件共享和TM备份的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用 netatalk 让 Linu

      攻略 2021年11月20日
    • 苹果手机怎么换ip地址,苹果手机ip地址怎么修改

      技术苹果手机怎么换ip地址,苹果手机ip地址怎么修改方法如下: 先在苹果手机的主屏上找到“设置”应用,打开它苹果手机怎么换ip地址。
      在设置列表中点击“无线局域网”一栏。接下来找到当前手机已经连接的无线网络,在网络名称的

      生活 2021年10月19日