[发明专利]语法查询方法、系统及计算机存储介质在审
申请号: | 202111465328.7 | 申请日: | 2021-12-03 |
公开(公告)号: | CN114282529A | 公开(公告)日: | 2022-04-05 |
发明(设计)人: | 张明明;胡绍勇 | 申请(专利权)人: | 上海观安信息技术股份有限公司 |
主分类号: | G06F40/253 | 分类号: | G06F40/253;G06F16/33 |
代理公司: | 北京城烽知识产权代理事务所(特殊普通合伙) 11829 | 代理人: | 徐超 |
地址: | 201803 上海市嘉定*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 语法 查询 方法 系统 计算机 存储 介质 | ||
本发明公开一种语法查询方法、系统及计算机存储介质。其中,该方法包括:根据预设需求建立自定义语法规则,自定义语法规则包括多个与弹性搜索Elasticsearch中的查询模块一一对应的关键字和标识符;对自定义语法规则做词法分析,得到顺序的二元组列表以及将二元组列表进行语法分析得到预测分析表;根据预测分析表对应的各个语法单元编写与各个语法单元对应的DSL格式语法的接口,并根据DSL格式语法的接口将二元组列表中的各单词生成与各接口对应的多个DSL语句;分别对多个DSL语句进行增强语句分析,生成自定义语法。本发明中通过建立自定义语法规则,解决了DSL语法复杂、语义不容易理解、结构冗长的问题,通过使用统一的接口,减少了开发人员开发多个接口的工作量。
技术领域
本发明涉及数据库查询技术领域,具体而言,涉及一种语法查询方法、系统及计算机存储介质。
背景技术
Elasticsearch是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,是一个近实时的分布式搜索和分析引擎。Elasticsearch也是使用Java编写的,它的内部使用Lucene做索引与搜索,目的是使全文检索变得简单,隐藏Lucene的复杂性。
现有技术中,Elasticsearch通信方式主要分为两种,一种是通过REST API进行通信,另一种是通过JavaAPI进行通信,查询相关的数据。
通过JavaAPI操作Elasticsearch,开发人员通常需要根据用户需求基于Elasticsearch的API进行二次开发,针对多个用户需求开发多个API接口,尤其是对查询结果做二次分析的时候,开发人员的工作量会变得十分巨大。当版本变化时,还需要重构代码,复用性不高。
通过REST API操作Elasticsearch,查询语法是基于JSON的DSL语法,语法繁杂,语义上不容易理解,结构冗长,出错后难以排查。尤其是当统计数据中的多个字段,对其进行聚合分析时,DSL语句会变得十分复杂,易用性不高。
针对现有技术中通过JavaAPI进行通信,查询结果需重构代码、复用性低、开发人员工作量巨大,以及通过RESTAPI进行通信,查询结果造成的语法复杂、语义不容易理解、结构冗长、出错后难以排查的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例中提供一种语法查询方法、系统及计算机存储介质,以解决现有技术中通过JavaAPI进行通信,查询结果需重构代码、复用性低、开发人员工作量巨大,以及通过REST API进行通信,查询结果造成的语法复杂、语义不容易理解、结构冗长、出错后难以排查的问题。
为达到上述目的,一方面,本发明提供了一种语法查询方法,所述方法包括:根据预设需求建立自定义语法规则,所述自定义语法规则包括多个与弹性搜索Elasticsearch中的查询模块一一对应的关键字和标识符;对所述自定义语法规则做词法分析,得到顺序的二元组列表以及将所述二元组列表进行语法分析得到预测分析表;根据所述预测分析表对应的各个语法单元编写与所述各个语法单元对应的DSL格式语法的接口,并根据所述DSL格式语法的接口将所述二元组列表中的各单词生成与所述各接口对应的多个DSL语句;分别对所述多个DSL语句进行增强语句分析,生成自定义语法。
可选的,所述建立自定义语法规则包括:设置所述关键字和标识符;对包括所述关键字和标识符的准语法规则进行非二义性测试;若通过所述非二义性测试,则将所述准语法规则生成为所述自定义语法规则。
可选的,所述对包括所述关键字的准语法规则进行非二义性测试,包括:计算所述准语法规则中的所有非终结符号的First集以及所有非终结符号的Follow集;判定非终结符号A的任何两个候选式的First集合不相交;判定若A中存在某一候选式可以推导出ε,则其它候选式的First集与Follow(A)集不相交。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海观安信息技术股份有限公司,未经上海观安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111465328.7/2.html,转载请声明来源钻瓜专利网。