DSL的构建方法、系统、电子设备和介质技术方案

技术编号:24251654 阅读:35 留言:0更新日期:2020-05-22 23:37
本发明专利技术公开了一种DSL的构建方法、系统、电子设备和介质,其中DSL的构建方法包括以下步骤:将目标算术表达式转换为目标Token集合;遍历目标Token集合以转换成逆波兰式;遍历逆波兰式以构建操作数栈,从操作数栈中弹出第一个操作数作为目标DSL。本发明专利技术降低了DSL构建的复杂度。

Construction method, system, electronic equipment and media of DSL

【技术实现步骤摘要】
DSL的构建方法、系统、电子设备和介质
本专利技术属于DSL的构建
,尤其涉及一种DSL的构建方法、系统、电子设备和介质。
技术介绍
Elasticsearch(一种搜索服务器)作为开源分布式搜索引擎之一,在各种规模的互联网企业都有着不同规模的集群部署,所以它有着非常活跃的社区,对它的使用与挖掘一刻也没有停止过。Elasticsearch具有特殊的QueryDSL(查询表达式)。由于Elasticsearch和传统关系型数据库的本质差异,Elasticsearch-SQL(一种数据库)支持到的功能很有限,只能做简单的逻辑查询,不支持join(一种数据类型)类型,并且Elasticsearch-SQL是X-Pack(一种插件)插件,增加了部署的复杂度。
技术实现思路
本专利技术要解决的技术问题是为了克服现有技术中的DSL构建的复杂度加高的缺陷,提供一种DSL的构建方法、系统、电子设备和介质。本专利技术是通过下述技术方案来解决上述技术问题:本专利技术提供一种DSL的构建方法,包括以下步骤:将目标算术本文档来自技高网...

【技术保护点】
1.一种DSL的构建方法,其特征在于,包括以下步骤:/n将目标算术表达式转换为目标Token集合;/n遍历所述目标Token集合以转换成逆波兰式;/n遍历所述逆波兰式以构建操作数栈,从所述操作数栈中弹出第一个操作数作为目标DSL。/n

【技术特征摘要】
1.一种DSL的构建方法,其特征在于,包括以下步骤:
将目标算术表达式转换为目标Token集合;
遍历所述目标Token集合以转换成逆波兰式;
遍历所述逆波兰式以构建操作数栈,从所述操作数栈中弹出第一个操作数作为目标DSL。


2.如权利要求1所述的DSL的构建方法,其特征在于,所述遍历所述目标Token集合以转换成逆波兰式的步骤包括:
识别所述目标Token集合中的不同类型的目标Token,将所述目标Token包装成Function、Parameter、Operator对象。


3.如权利要求2所述的DSL的构建方法,其特征在于,所述遍历所述逆波兰式以构建操作数栈的步骤包括:
判断是否为子查询,如果是子查询,则根据逻辑表达式的分配律、结合律、交换律、反演律将所述逆波兰式转换为最小项和的形式,对每个最小项按照父子文档属性进行交换排序,并构建子查询DSL以生成所述目标DSL;如果不是子查询,则对每个所述Operator对象构建所述目标DSL。


4.如权利要求1所述的DSL的构建方法,其特征在于,所述目标DSL为ElasticsearchQueryDSL。


5.一种DSL的构建系统,其特征在于,包括词法分析器、逆波兰式转换器、语法构建器;
所述词法分析器用于将目标算术表达式转换为目标Token集合;
所述逆波兰式转换器用于遍...

【专利技术属性】
技术研发人员:郑成孔令梁戴军强许世童
申请(专利权)人:上海携程商务有限公司
类型:发明
国别省市:上海;31

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

1