更新ElasticSearch中索引的方法、装置、电子设备及介质制造方法及图纸

技术编号:38732674 阅读:7 留言:0更新日期:2023-09-08 23:21
本申请提供一种更新ElasticSearch中索引的方法、装置、电子设备及介质,更新ElasticSearch中索引的方法包括:接收目标增量,目标增量用于表征目标软件在版本升级后,ElasticSearch中目标软件对应的索引的变化量;将目标增量注入版本升级后的目标软件对应的程序里的代码模板中,以使版本升级后的目标软件运行时,能够基于代码模板和目标增量将ElasticSearch中目标软件的索引进行更新。这样,无需开发人员编写有关新的索引以及数据迁移的脚本,仅仅通过输入索引的增量,即可实现ElasticSearch中索引的更新,降低ElasticSearch中索引更新的门槛,进而降低ElasticSearch中索引更新的成本。ElasticSearch中索引更新的成本。ElasticSearch中索引更新的成本。

【技术实现步骤摘要】
更新ElasticSearch中索引的方法、装置、电子设备及介质


[0001]本申请涉及计算机
,尤其涉及一种更新ElasticSearch中索引的方法、装置、电子设备及介质。

技术介绍

[0002]ElasticSearch是位于Elastic Stack核心的分布式搜索和分析引擎,能够存储和索引数据。ElasticSearch使用索引(Index)来描述存储的数据的结构信息,通过索引能够查找到所需要的数据。在软件开发中,当需要对软件涉及的数据库中的数据进行搜索时,使用的就是ElasticSearch。
[0003]随着业务的不断迭代,软件也在不断升级,其底层存储在ElasticSearch中的数据也会发生变化,相应的索引也会发生变化。为了使ElasticSearch中的索引能够适用于迭代后的业务,需要根据迭代后的业务对索引进行更新。更新索引主要采用的方式为:通过开发人员编写脚本,在脚本中,注入新的索引,以及使用某种数据迁移方法将原先存储的数据迁移至新索引下,最后删除旧的索引。在软件发布前,手动执行该脚本,从而完成对ElasticSearch中索引以及数据的更新。
[0004]采用上述方式对ElasticSearch中的索引以及数据进行更新,需要开发人员对ElasticSearch以及软件的整个架构非常熟悉,才能够编写出正确的脚本,使得编写出的脚本能够正确的完成对ElasticSearch中索引的更新,这在无形之中就增加了ElasticSearch中索引更新的成本。

技术实现思路
/>[0005]本申请实施例的目的是提供一种更新ElasticSearch中索引的方法、装置、电子设备及介质,以降低ElasticSearch中索引更新的成本。
[0006]为解决上述技术问题,本申请实施例提供如下技术方案:
[0007]本申请第一方面提供一种更新ElasticSearch中索引的方法,所述方法包括:接收目标增量,所述目标增量用于表征目标软件在版本升级后,ElasticSearch中目标软件对应的索引的变化量;将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中,以使版本升级后的目标软件运行时,能够基于所述代码模板和所述目标增量将所述ElasticSearch中目标软件的索引进行更新。
[0008]本申请第二方面提供一种更新ElasticSearch中索引的装置,所述装置包括:接收模块,用于接收目标增量,所述目标增量用于表征目标软件在版本升级后,ElasticSearch中目标软件对应的索引的变化量;更新模块,用于将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中,以使版本升级后的目标软件运行时,能够基于所述代码模板和所述目标增量将所述ElasticSearch中目标软件的索引进行更新。
[0009]本申请第三方面提供一种电子设备,所述电子设备包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存
储器中的程序指令,以执行第一方面中的方法。
[0010]本申请第四方面提供一种计算机可读存储介质,所述存储介质包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面中的方法。
[0011]相较于现有技术,本申请第一方面提供的更新ElasticSearch中索引的方法,通过预先在目标软件的程序中添加代码模板,该代码模板在程序运行的同时也能够运行,并且能够实现ElasticSearch中索引的更新。在目标软件的版本升级后,接收针对变化的索引的目标增量,进而将目标增量注入目标软件程序的代码模板中,使得目标软件程序运行后,能够按照目标增量更新ElasticSearch该目标软件的索引。这样,无需开发人员编写有关新的索引以及数据迁移的脚本,仅仅通过输入索引的增量,即可实现ElasticSearch中索引的更新,降低ElasticSearch中索引更新的门槛,进而降低ElasticSearch中索引更新的成本。并且,不再依靠编写的脚本对ElasticSearch中的索引进行更新,还能够避免进行数据迁移,进而避免脚本执行出错而导致的数据丢失问题,确保ElasticSearch中进行索引更新时软件的数据的完整性。
[0012]本申请第二方面提供的更新ElasticSearch中索引的装置、第三方面提供的电子设备、第四方面提供的计算机可读存储介质,与第一方面提供的更新ElasticSearch中索引的方法具有相同或相似的有益效果。
附图说明
[0013]通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
[0014]图1为本申请实施例中更新ElasticSearch中索引的方法的架构示意图;
[0015]图2为本申请实施例中更新ElasticSearch中索引的方法的流程示意图;
[0016]图3为本申请实施例中通过flyway更新ElasticSearch中索引的架构示意图;
[0017]图4为本申请实施例中更新ElasticSearch中索引的装置的结构示意图;
[0018]图5为本申请实施例中电子设备的结构示意图。
具体实施方式
[0019]下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
[0020]需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
[0021]目前,ElasticSearch中存储有软件的数据以及数据的索引。当软件升级时,ElasticSearch中存储的软件的数据以及索引都有可能发生变化。但是ElasticSearch中的索引并不像关系型数据库那样能够支持对索引的在线数据定义语言(Online Data Definition Language(Online DDL))操作,只能够通过编写脚本建立一个新的索引,使数据迁移至新的索引下,并删除旧的索引。而编写脚本对人员的要求较高,需要熟知
ElasticSearch以及软件的机构,这就在无形之中增加了ElasticSearch中索引更新的成本。
[0022]专利技术人经过研究发现,如果不再针对每一次的软件版本升级都编写一个ElasticSearch索引更新脚本,而是在软件的程序中插入一个预先编辑好的代码模板,在软件的版本升级后,仅需将索引变化的增量输入到代码模板中,使得软件的程序运行后,通过代码模板以及输入的增量,将ElasticSearch中的索引更新至与升级后的软件对应。这样,用户就可以本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种更新ElasticSearch中索引的方法,其特征在于,所述方法包括:接收目标增量,所述目标增量用于表征目标软件在版本升级后,ElasticSearch中目标软件对应的索引的变化量;将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中,以使版本升级后的目标软件运行时,能够基于所述代码模板和所述目标增量将所述ElasticSearch中目标软件的索引进行更新。2.根据权利要求1所述的方法,其特征在于,在将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中之前,所述方法还包括:判断所述目标增量的格式是否符合所述代码模板所要求的预设格式;若是,则执行将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中的步骤;若否,则将所述目标增量的格式修改为所述预设格式,进而将修改为所述预设格式的目标增量注入版本升级后的目标软件对应的程序里的代码模板中。3.根据权利要求1所述的方法,其特征在于,在接收目标增量之前,所述方法还包括:确定版本升级后的目标软件的程序中业务模块的起始位置;在所述起始位置之前添加所述代码模板。4.根据权利要求1所述的方法,其特征在于,在将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中之后,所述方法还包括:判断所述ElasticSearch中目标软件的索引是否基于所述目标增量更新;若是,则将版本升级后的目标软件的版本号以及所述目标增量对应存储;若否,则输出索引更新失败的提示信息。5.根据权利要求1所述的方法,其特征在于,在将所述目标增量注入版本升级后的目标软件对应的程序里的代码模板中之后,所述方法还包括:从重启的目标软件的程序中获取当前版本号;从升级记录表中获取目标软件最近一次升级时,其索引的增量对应的最新版本号,所述升级记录表中存储有目标软件每次进行版本升级时,其索引的增量与相应的版本号的对应关系;判断所述当前版本号与所述最新版本号是否一致;若是,则维持重启的目标软件继续运行;若否,则将所述最新版本号对应的增量注入重启的目标软件对应的程序里的代码模板中,以使重启的目标软件运行时,能够基于所述代码模板和所述最新版本号对应的增量对所述Elast...

【专利技术属性】
技术研发人员:高羽
申请(专利权)人:奇安信科技集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1