一种基于领域特定语言的数据查询方法及装置制造方法及图纸

技术编号:32607712 阅读:13 留言:0更新日期:2022-03-12 17:32
本公开涉及计算机技术领域,特别涉及一种基于领域特定语言的数据查询方法及装置,用于在保证数据查询效率的同时,提高系统可用性,该方法为:采用设置的基础解析器,对接收到的数据查询语句进行解析,生成相应的抽象语法树,并基于抽象语法树,得到各个规则节点对应的各个解析结果,生成相应的弹性搜索领域特定语言,然后接收并发送弹性搜索搜索引擎返回的数据查询结果。这样,遵循结构化查询语言语法实现结构化查询语言语句与弹性搜索领域特定语言的转换,使得开发人员快速实现弹性搜索搜索引擎的数据查询,极大的提高了开发效率,从而提高了系统可用性,同时保证了数据查询效率。率。率。

【技术实现步骤摘要】
一种基于领域特定语言的数据查询方法及装置


[0001]本公开涉及计算机
,特别涉及一种基于领域特定语言的数据查询方法及装置。

技术介绍

[0002]随着业务系统数据呈爆炸式增长,系统复杂度也越来越高,基于关系型数据库的系统搜索能力,难以满足用户愈来愈高的搜索需求。
[0003]目前,通常采用以下方式进行数据搜索:
[0004]第一种方式,引入弹性搜索(Elasticsearch,ES)搜索引擎,作为系统搜索能力的核心,将数据库存储的多个业务模型,构建成搜索引擎的全系统对象,使数据库专注于数据存储,由ES搜索引擎专注于数据搜索。
[0005]第二种方式,引入Apache Calcite,Apache Calcite的结构如图1所示,Apache Calcite能够提供标准的结构化查询语言(Structured Query Language,SQL)语言、多种查询优化和连接各种数据源的能力。
[0006]然而,ES领域特定语言(Domain-Specific Language,DSL)的语法以及查询应用程序接口(Application Programming Interface,API)的参数较为复杂,因此,开发成本较高,开发效率和系统可用性较低,而Apache Calcite侧重于查询优化,无法保证查询效率。
[0007]由此可见,需要设计一种新的方案,以克服上述缺陷。

技术实现思路

[0008]本公开提供了一种基于领域特定语言的数据查询方法及装置,用以在保证数据查询效率的同时,提高系统可用性。
[0009]本公开实施例提供的具体技术方案如下:
[0010]第一方面,一种基于领域特定语言的数据查询方法,包括:
[0011]接收业务平台发送的数据查询语句;
[0012]若所述数据查询语句为非中文结构化查询语言语句,则基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,其中,规则节点用于表征所述数据查询语句包含的语法规则;
[0013]基于所述抽象语法树,得到所述各个规则节点对应的解析结果,并基于得到的各个解析结果,生成相应的弹性搜索弹性搜索领域特定语言,以及将所述弹性搜索领域特定语言发送至弹性搜索搜索引擎;
[0014]接收所述弹性搜索搜索引擎基于所述弹性搜索领域特定语言返回的数据查询结果,并将所述数据查询结果发送至所述业务平台。
[0015]可选的,接收业务平台发送的数据查询语句之前,进一步包括:
[0016]接收到所述业务平台发送的可视化查询请求时,加载设置的查询推荐信息,并将所述查询推荐信息发送至所述业务平台,所述查询推荐信息中至少包含候选的搜索关键词
集合;
[0017]依次接收所述业务平台基于所述查询推荐信息返回的各个搜索关键词,并将所述各个搜索关键词发送至所述弹性搜索搜索引擎,以及接收所述弹性搜索搜索引擎返回的相应的各个关键词取值集合;
[0018]将所述各个关键词取值集合发送至所述业务平台,并接收所述业务平台基于所述各个关键词取值集合返回的所述数据查询语句。
[0019]可选的,接收业务平台发送的数据查询语句之后,进一步包括:
[0020]若所述数据查询语句为中文结构化查询语言语句,则基于设置的结构化查询语言语法规则,对所述中文结构化查询语言语句进行语法校验,以及基于设置的值校验规则,对所述数据查询语句进行值校验;
[0021]若所述数据查询语句通过所述值校验,则基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,其中,所述数字字典中包含中文结构化查询语言语句和非中文结构化查询语言语句之间的映射关系;
[0022]基于所述非中文结构化查询语言语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树。
[0023]可选的,基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,具体包括:
[0024]若所述数据查询语句中未包含表征数据排序条件的第一类关键词,则基于设置的数字字典,以及设置的排序条件,生成相应的包含所述第一类关键词的非中文结构化查询语言语句;
[0025]若所述数据查询语句中包含表征存在至少一个相应的非中文关键词的第二类关键词,则基于设置的数字字典,以及至少一个非中文关键词,生成相应的包含所述至少一个非中文关键词的非中文结构化查询语言语句;
[0026]若所述数据查询语句中包含表征存在引用关系的第三类关键词,则基于所述引用关系,确定相应的各个搜索条件,并基于设置的数字字典,生成相应的包含所述各个搜索条件的非中文结构化查询语言语句。
[0027]可选的,基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,具体包括:
[0028]基于所述数据查询语句,采用设置的词法分析器,确定所述数据查询语句中包含的各个词法单元;
[0029]基于所述各个词法单元,采用设置的语法分析器,确定所述数据查询语句中包含的各个规则节点,并基于所述各个规则节点,生成相应的抽象语法树;
[0030]其中,所述词法分析器和所述语法分析器是基于设置的结构化查询语言语法规则,采用设置的基础解析器生成的。
[0031]可选的,基于所述抽象语法树,得到所述各个规则节点对应的解析结果,并基于得到的各个解析结果,生成相应的弹性搜索领域特定语言,具体包括:
[0032]采用设置的深度优先算法,依次读取所述抽象语法树中包含的各个规则节点和各个叶子节点,其中,叶子节点用于表征所述数据查询语句中包含的词法单元;
[0033]基于所述各个规则节点,根据预先设置的结构化查询语言语法规则与弹性搜索领
域特定语言语法规则之间的对应关系,生成相应的各个初始解析结果,并基于所述各个叶子节点,生成相应的各个中间解析结果;
[0034]基于所述数据查询语句的上下文,对所述各个初始解析结果和所述各个中间解析结果进行合并,生成相应的各个解析结果;
[0035]基于所述数据查询语句的上下文,对各个解析结果进行合并,生成相应的弹性搜索领域特定语言。
[0036]第二方面,一种基于领域特定语言的数据查询装置,包括:
[0037]第一处理单元,用于接收业务平台发送的数据查询语句;
[0038]第二处理单元,用于若所述数据查询语句为非中文结构化查询语言语句,则基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,其中,规则节点用于表征所述数据查询语句包含的语法规则;
[0039]第三处理单元,用于基于所述抽象语法树,得到所述各个规则节点对应的解析结果,并基于得到的各个解析结果,生成相应的弹性搜索领域特定语言,以及将所述弹性搜索领域特定语言发送至弹性搜索搜索引擎;
[0040]第四处理单元,用于接收所述弹性搜索搜索引擎基于所述弹性搜索领域特定语言返回本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于领域特定语言的数据查询方法,其特征在于,包括:接收业务平台发送的数据查询语句;若所述数据查询语句为非中文结构化查询语言语句,则基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,其中,规则节点用于表征所述数据查询语句包含的语法规则;基于所述抽象语法树,得到所述各个规则节点对应的解析结果,并基于得到的各个解析结果,生成相应的弹性搜索领域特定语言,以及将所述弹性搜索领域特定语言发送至弹性搜索搜索引擎;接收所述弹性搜索搜索引擎基于所述弹性搜索领域特定语言返回的数据查询结果,并将所述数据查询结果发送至所述业务平台。2.如权利要求1所述的方法,其特征在于,接收业务平台发送的数据查询语句之前,进一步包括:接收到所述业务平台发送的可视化查询请求时,加载设置的查询推荐信息,并将所述查询推荐信息发送至所述业务平台,所述查询推荐信息中至少包含候选的搜索关键词集合;依次接收所述业务平台基于所述查询推荐信息返回的各个搜索关键词,并将所述各个搜索关键词发送至所述弹性搜索搜索引擎,以及接收所述弹性搜索搜索引擎返回的相应的各个关键词取值集合;将所述各个关键词取值集合发送至所述业务平台,并接收所述业务平台基于所述各个关键词取值集合返回的所述数据查询语句。3.如权利要求1所述的方法,其特征在于,接收业务平台发送的数据查询语句之后,进一步包括:若所述数据查询语句为中文结构化查询语言语句,则基于设置的结构化查询语言语法规则,对所述中文结构化查询语言语句进行语法校验,以及基于设置的值校验规则,对所述数据查询语句进行值校验;若所述数据查询语句通过所述值校验,则基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,其中,所述数字字典中包含中文结构化查询语言语句和非中文结构化查询语言语句之间的映射关系;基于所述非中文结构化查询语言语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树。4.如权利要求3所述的方法,其特征在于,基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,具体包括:若所述数据查询语句中未包含表征数据排序条件的第一类关键词,则基于设置的数字字典,以及设置的排序条件,生成相应的包含所述第一类关键词的非中文结构化查询语言语句;若所述数据查询语句中包含表征存在至少一个相应的非中文关键词的第二类关键词,则基于设置的数字字典,以及至少一个非中文关键词,生成相应的包含所述至少一个非中文关键词的非中文结构化查询语言语句;若所述数据查询语句中包含表征存在引用关系的第三类关键词,则基于所述引用关
系,确定相应的各个搜索条件,并基于设置的数字字典,生成相应的包含所述各个搜索条件的非中文结构化查询语言语句。5.如权利要求1-4中任一项所述的方法,其特征在于,基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,具体包括:基于所述数据查询语句,采用设置的词法分析器,确...

【专利技术属性】
技术研发人员:焦阳王宁
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

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

1