【技术实现步骤摘要】
一种基于领域特定语言的数据查询方法及装置
[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]本公开提供了一种基于领域特定语言的数据查询方法及装置,用以在保 ...
【技术保护点】
【技术特征摘要】
1.一种基于领域特定语言的数据查询方法,其特征在于,包括:接收业务平台发送的数据查询语句;若所述数据查询语句为非中文结构化查询语言语句,则基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,其中,规则节点用于表征所述数据查询语句包含的语法规则;基于所述抽象语法树,得到所述各个规则节点对应的解析结果,并基于得到的各个解析结果,生成相应的弹性搜索领域特定语言,以及将所述弹性搜索领域特定语言发送至弹性搜索搜索引擎;接收所述弹性搜索搜索引擎基于所述弹性搜索领域特定语言返回的数据查询结果,并将所述数据查询结果发送至所述业务平台。2.如权利要求1所述的方法,其特征在于,接收业务平台发送的数据查询语句之前,进一步包括:接收到所述业务平台发送的可视化查询请求时,加载设置的查询推荐信息,并将所述查询推荐信息发送至所述业务平台,所述查询推荐信息中至少包含候选的搜索关键词集合;依次接收所述业务平台基于所述查询推荐信息返回的各个搜索关键词,并将所述各个搜索关键词发送至所述弹性搜索搜索引擎,以及接收所述弹性搜索搜索引擎返回的相应的各个关键词取值集合;将所述各个关键词取值集合发送至所述业务平台,并接收所述业务平台基于所述各个关键词取值集合返回的所述数据查询语句。3.如权利要求1所述的方法,其特征在于,接收业务平台发送的数据查询语句之后,进一步包括:若所述数据查询语句为中文结构化查询语言语句,则基于设置的结构化查询语言语法规则,对所述中文结构化查询语言语句进行语法校验,以及基于设置的值校验规则,对所述数据查询语句进行值校验;若所述数据查询语句通过所述值校验,则基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,其中,所述数字字典中包含中文结构化查询语言语句和非中文结构化查询语言语句之间的映射关系;基于所述非中文结构化查询语言语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树。4.如权利要求3所述的方法,其特征在于,基于设置的数字字典,以及基于所述数据查询语句,生成相应的非中文结构化查询语言语句,具体包括:若所述数据查询语句中未包含表征数据排序条件的第一类关键词,则基于设置的数字字典,以及设置的排序条件,生成相应的包含所述第一类关键词的非中文结构化查询语言语句;若所述数据查询语句中包含表征存在至少一个相应的非中文关键词的第二类关键词,则基于设置的数字字典,以及至少一个非中文关键词,生成相应的包含所述至少一个非中文关键词的非中文结构化查询语言语句;若所述数据查询语句中包含表征存在引用关系的第三类关键词,则基于所述引用关
系,确定相应的各个搜索条件,并基于设置的数字字典,生成相应的包含所述各个搜索条件的非中文结构化查询语言语句。5.如权利要求1-4中任一项所述的方法,其特征在于,基于所述数据查询语句,采用设置的基础解析器,生成包含各个规则节点的抽象语法树,具体包括:基于所述数据查询语句,采用设置的词法分析器,确...
【专利技术属性】
技术研发人员:焦阳,王宁,
申请(专利权)人:北京达佳互联信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。