【技术实现步骤摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。