[发明专利]DSL语句生成方法、装置、系统及计算机可读存储介质在审
申请号: | 202111637733.2 | 申请日: | 2021-12-29 |
公开(公告)号: | CN114218255A | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 鲁昊;胡绍勇 | 申请(专利权)人: | 上海观安信息技术股份有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2452 |
代理公司: | 北京城烽知识产权代理事务所(特殊普通合伙) 11829 | 代理人: | 徐超 |
地址: | 201803 上海市嘉定*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | dsl 语句 生成 方法 装置 系统 计算机 可读 存储 介质 | ||
本发明实施例公开了一种DSL语句生成方法、装置、系统及计算机可读存储介质。其中,该方法包括:获取查询信息;其中,所述查询信息中包括连接符及查询条件;以所述连接符为连接节点,所述查询条件为条件节点,构建多叉查询树;其中,所述连接节点为所述多叉查询树中的根节点或父节点,条件节点为所述多叉查询树中的叶子节点;遍历所述多叉查询树中的每个节点,并对每个节点解析后进行拼接,得到DSL语句。本发明根据用户输入的查询信息转化为多叉查询树,并对多叉查询树中的每个节点进行顺序解析后组合成完整的查询语句,提高了非专业人员使用的便利性、及DSL语句生成速度。
技术领域
本发明涉及计算机技术领域,尤其涉及一种DSL语句生成方法、装置、系统及计算机可读存储介质。
背景技术
由于Elasticsearch(简称ES)对海量数据具有很高的查询效率,所有现在有越来越多的业务系统都将ES作为数据源之一。由于数据源属于系统的底层架构,ES仅提供基于DSL命令的方式对存储的数据进行丰富的查询操作,所以ES本身没有提供基于GUI的交互方式,所以非专业人员直接查询ES数据的门槛较高,即便在大多数业务系统中也都是预先设置固定的查询条件供系统使用者进行数据查询。
如今基于海量数据生成报表的需求越来越普遍,而生成报表的查询条件都是动态生成无法预先设置,所以目前市面上相关系统普遍采取前端(用户界面)输入SQL语句,后端再将SQL解析成DSL方式来实现动态查询功能。但就算采用SQL的方式也有一定的使用门槛,因为大多数系统的使用者可能并没有接触过数据库相关知识的培训。
因此如何使非专业人员方便、灵活根据查询需求生成DSL查询语句,是本领域技术人员需要解决的问题。
发明内容
为解决上述问题,本发明提供一种DSL语句生成方法、装置、系统及计算机可读存储介质,通过根据用户查询需求生成的查询信息,并根据查询信息中的连接符与查询条件构建多叉查询树,遍历解析多叉查询树的所有节点,得到翻译完成的DSL查询语句,以解决现有技术中人如何使非专业人员方便、灵活根据查询需求生成DSL查询语句的问题。
为达到上述目的,本发明提供了一种DSL语句生成方法,其特征在于,包括:获取查询信息;其中,所述查询信息中包括连接符及查询条件;以所述连接符为连接节点,所述查询条件为条件节点,构建多叉查询树;其中,所述连接节点为所述多叉查询树中的根节点或父节点,条件节点为所述多叉查询树中的叶子节点;遍历所述多叉查询树中的每个节点,并对每个节点解析后进行拼接,得到DSL语句。
进一步可选的,所述遍历所述多叉查询树中的每个节点,并对每个节点解析后进行拼接,得到DSL语句,包括:采用先序遍历算法将所述多叉查询树转化为节点数组;以所述节点数组的尾端节点为初始节点,顺序遍历所述节点数组,根据节点类型对每个节点进行数据解析后存入预设目标栈,直至所述节点数组中的所有节点解析存储完成,得到DSL语句。
进一步可选的,所述根据节点类型对每个节点进行数据解析后存入预设目标栈,包括:若当前节点为条件节点,则将当前节点的内容解析为DSL查询条件输入所述预设目标栈;若当前节点为连接节点,则取出所述预设目标栈中的所有DSL查询条件与所述当前节点组合后再存入所述预设目标栈。
进一步可选的,所述获取查询信息包括:识别连接符输入位置及对应的查询条件输入位置;提取所述连接符输入位置的连接符及所述查询条件输入位置的查询条件。
另一方面,本发明还提供一种DSL语句生成装置,包括:数据获取模块,用于获取查询信息;其中,所述查询信息中包括连接符及查询条件;多叉查询树生成模块,用于以所述连接符为连接节点,所述查询条件为条件节点,构建多叉查询树;其中,所述连接节点为所述多叉查询树中的根节点或父节点,条件节点为所述多叉查询树中的叶子节点;拼接模块,用于遍历所述多叉查询树中的每个节点,并对每个节点解析后进行拼接,得到DSL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海观安信息技术股份有限公司,未经上海观安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111637733.2/2.html,转载请声明来源钻瓜专利网。