查询语句生成方法、装置、设备及计算机可读存储介质制造方法及图纸

技术编号:28035695 阅读:17 留言:0更新日期:2021-04-09 23:17
本申请提供了一种查询语句生成方法,该方法包括:先加载XML查询模板,当将XML查询模板加载到ES客户端侧的设备内存后,对XML查询模板进行校验,当校验成功后,对XML查询模板进行解析,得到各个ES查询语句。可见,本申请是在通俗易懂的XML语言的基础上开发出的模板,然后对其进行处理后得到符合ES业务逻辑的各个ES查询语句,该方法在ES客户端运行,不占用ES服务端资源,降低了ES服务器的资源消耗,而且,由于采用了XML查询模板,该方法还具有简单易用、提升工作效率、节省学习成本、减轻运维人员工作负担等效果。

【技术实现步骤摘要】
查询语句生成方法、装置、设备及计算机可读存储介质
本申请涉及通信
,特别涉及一种查询语句生成方法、装置、设备及计算机可读存储介质。
技术介绍
ES是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据,这使其在企业中被广泛使用,ES可以和查询语句bool(表示布尔型变量)实现组合查询,但各类分析统计过滤检索都会带来大量的重复性工作,故而,通过简化代码逻辑以提高代码生产率,将大大减少企业成本。在现有技术中,为了给频繁使用到的一类查询减少重复性的工作,ES官方提供了一套基于javascript脚本语言(mustache)的模板查询(searchtemplate)应用程序接口(ApplicationProgrammingInterface,API)。现有技术方案的缺点主要包括以下几点:1、模板语言学习成本大;如果要掌握ES模板查询技术,首先得学会基于javascript语言的模板引擎技术(mustache),这样会对使用者带来额外的负担。2、服务端执行维护难度大;所有模板均需先注册到ES服务器中才可以使用;如果有成百上千个模板,还得使用特定API才能一一查找,对模板的维护难度很大并且不直观。3、占用ES本身资源(比如内存、CPU);所有模板都存储在ES内存中,给本身单台内存紧张的节点带来更大的压力,并且解析mustache模板需要额外的CPU资源。4、复杂逻辑不易实现;比如判断、遍历、赋值等业务逻辑,在mustache模板中不易实现,且用法复杂不够透明。5、更新模板需要手动重新加载;如果有模板内容需要更新,需将更新后的模板通过API重新加载到ES内存中,这样会给线上业务带来更复杂的业务逻辑。6、脚本执行消耗性能;ES脚本的使用本身就比较消耗性能,一般情况下尽量不使用脚本。
技术实现思路
有鉴于此,本申请提供了一种查询语句生成方法、装置、设备及计算机可读存储介质,能够解决ES官方自带的查询模板的缺陷。具体地,本申请是通过如下技术方案实现的:一种查询语句生成方法,所述方法应用于ES客户端,所述方法包括:加载可扩展标记语言XML查询模板;当将所述XML查询模板加载到所述ES客户端侧的设备内存后,对所述XML查询模板进行校验;当校验成功后,对所述XML查询模板进行解析,得到各个ES查询语句。一种查询语句生成装置,所述装置应用于ES客户端,所述装置包括:模板加载单元,用于加载可扩展标记语言XML查询模板;模板校验单元,用于当将所述XML查询模板加载到所述ES客户端侧的设备内存后,对所述XML查询模板进行校验;模板解析单元,用于当校验成功后,对所述XML查询模板进行解析,得到各个ES查询语句。一种电子设备,包括:处理器、存储器;所述存储器,用于存储计算机程序;所述处理器,用于通过调用所述计算机程序,执行上述查询语句生成方法。一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述查询语句生成方法。在以上本申请提供的技术方案中,先加载XML查询模板,当将XML查询模板加载到ES客户端侧的设备内存后,对XML查询模板进行校验,当校验成功后,对XML查询模板进行解析,得到各个ES查询语句。可见,本申请是在通俗易懂的XML语言的基础上开发出的模板,然后对其进行处理后得到符合ES业务逻辑的各个ES查询语句,该方法在ES客户端运行,不占用ES服务端资源,降低了ES服务器的资源消耗,而且,由于采用XML查询模板,该方法还具有简单易用、提升工作效率、节省学习成本、减轻运维人员工作负担等效果。附图说明图1为本申请示出的一种查询语句生成方法的流程示意图;图2为本申请示出的另一种查询语句生成方法的流程示意图;图3为本申请示出的一种查询语句生成装置的组成示意图;图4为本申请示出的一种电子设备的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在介绍本申请实施例之前,首先对本申请实施例涉及的技术术语进行介绍。ES:Elasticsearch的简称,是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。XML:可扩展标记语言(ExtensibleMarkupLanguage,XML),标准通用标记语言的子集。是一种用于标记电子文件使其具有结构性的标记语言。DTD:文档类型定义(DocumentTypeDefinition,DTD)是一种特殊文档,它规定、约束符合标准通用标示语言(StandardGeneralizedMarkuplanguage,SGML)或SGML子集可扩展标示语言(XML)规则的定义和陈述,是一种XML文件校验技术。RESTful:一种网络应用程序的设计风格和开发方式,基于超文本传输协议(HyperTextTransferProtocol,HTTP),可以使用XML格式定义或JS对象简谱(JavaScriptObjectNotation,JSON)格式定义。本申请实施例提供了一种查询语句生成方法,该方法是一种不同于ES官方自带的查询模板的另一种更为先进的实现方式,解决了官方自带的查询模板所暴露出来的一些问题缺点,从而达到简单易用和降低ES资源消耗的目的,另一方面,也可以达到提升工作效率、节省学习成本、减轻运维人员工作负担的效果。下面对本申请实施例提供的查询语句生成方法进行具体介绍。参见图1,为本申请实施例提供的一本文档来自技高网
...

【技术保护点】
1.一种查询语句生成方法,其特征在于,所述方法应用于ES客户端,所述方法包括:/n加载可扩展标记语言XML查询模板;/n当将所述XML查询模板加载到所述ES客户端侧的设备内存后,对所述XML查询模板进行校验;/n当校验成功后,对所述XML查询模板进行解析,得到各个ES查询语句。/n

【技术特征摘要】
1.一种查询语句生成方法,其特征在于,所述方法应用于ES客户端,所述方法包括:
加载可扩展标记语言XML查询模板;
当将所述XML查询模板加载到所述ES客户端侧的设备内存后,对所述XML查询模板进行校验;
当校验成功后,对所述XML查询模板进行解析,得到各个ES查询语句。


2.根据权利要求1所述的方法,其特征在于,所述加载可扩展标记语言XML查询模板,包括:
当用户通过ES客户端发起查询请求时,加载所述XML查询模板;
或者,当所述ES客户端的应用程序处于运行状态下时,加载所述XML查询模板。


3.根据权利要求1所述的方法,其特征在于,所述对所述XML查询模板进行校验,包括:
对所述XML查询模板的模板内容的完整性和正确性进行校验;
对所述模板内容中的自定义标签及属性的合法性和语法正确性进行校验。


4.根据权利要求1所述的方法,其特征在于,所述对所述XML查询模板进行解析,得到各个ES查询语句,包括:
利用所述XML查询模板构建一颗Document对象树;
通过对所述Document对象树上的节点对象进行操作,得到符合ES业务逻辑的各个ES查询语句。


5.根据权利要求1-4任一项所述的方法,其特征在于,所述得到各个ES查询语句之后,还包括:
若所述各个ES查询语句中存在至少一个自...

【专利技术属性】
技术研发人员:汪镇杰王涛
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:浙江;33

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

1