【技术实现步骤摘要】
语法查询方法、系统及计算机存储介质
[0001]本专利技术涉及数据库查询
,具体而言,涉及一种语法查询方法、系统及计算机存储介质。
技术介绍
[0002]Elasticsearch是一个建立在全文搜索引擎Apache Lucene基础上的搜索引擎,是一个近实时的分布式搜索和分析引擎。Elasticsearch也是使用Java编写的,它的内部使用Lucene做索引与搜索,目的是使全文检索变得简单,隐藏Lucene的复杂性。
[0003]现有技术中,Elasticsearch通信方式主要分为两种,一种是通过REST API进行通信,另一种是通过JavaAPI进行通信,查询相关的数据。
[0004]通过JavaAPI操作Elasticsearch,开发人员通常需要根据用户需求基于Elasticsearch的API进行二次开发,针对多个用户需求开发多个API接口,尤其是对查询结果做二次分析的时候,开发人员的工作量会变得十分巨大。当版本变化时,还需要重构代码,复用性不高。
[0005]通过REST API ...
【技术保护点】
【技术特征摘要】
1.一种语法查询方法,其特征在于,包括:根据预设需求建立自定义语法规则,所述自定义语法规则包括多个与弹性搜索Elasticsearch中的查询模块一一对应的关键字和标识符;对所述自定义语法规则做词法分析,得到顺序的二元组列表以及将所述二元组列表进行语法分析得到预测分析表;根据所述预测分析表对应的各个语法单元编写与所述各个语法单元对应的DSL格式语法的接口,并根据所述DSL格式语法的接口将所述二元组列表中的各单词生成与所述各接口对应的多个DSL语句;分别对所述多个DSL语句进行增强语句分析,生成自定义语法。2.根据权利要求1所述的语法查询方法,其特征在于,所述建立自定义语法规则包括:设置所述关键字和标识符;对包括所述关键字和标识符的准语法规则进行非二义性测试;若通过所述非二义性测试,则将所述准语法规则生成为所述自定义语法规则。3.根据权利要求2所述的语法查询方法,其特征在于,所述对包括所述关键字的准语法规则进行非二义性测试,包括:计算所述准语法规则中的所有非终结符号的First集以及所有非终结符号的Follow集;判定非终结符号A的任何两个候选式的First集合不相交;判定若A中存在某一候选式可以推导出ε,则其它候选式的First集与Follow(A)集不相交。4.根据权利要求1所述的语法查询方法,其特征在于,所述对所述自定义语法规则做词法分析包括:对所述自定义语法规则的文本进行预处理;所述预处理包括:过滤掉空格、注释、换行;通过超前搜索最多n个字符确定单词的词性;识别所述标识符时,得到非确定自动机NFA的状态转换图,通过子集法将所述非确定自动机NFA的状态转换图转化为有限状态自动机DFA的状态转换图;根据所述有限状态自动机DFA的状态转换图中的字符转移情况编写词法分析程序,返回顺序的二元组列表。5.根据权利要求4所述的语法查询方法,其特征在于,所述将所述二元组列表进行语法分析得到预测分析表包括:提取公共左因子,消除左递归;求所有非终结符号的FIRST集合和所有非终结符号的FOLLOW集合;构造LL(1)文法的所述预测分析表。6.根据权利要求5所述的...
【专利技术属性】
技术研发人员:张明明,胡绍勇,
申请(专利权)人:上海观安信息技术股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。