CN110020006B - 查询语句的生成方法及相关设备 - Google Patents
查询语句的生成方法及相关设备 Download PDFInfo
- Publication number
- CN110020006B CN110020006B CN201710625972.3A CN201710625972A CN110020006B CN 110020006 B CN110020006 B CN 110020006B CN 201710625972 A CN201710625972 A CN 201710625972A CN 110020006 B CN110020006 B CN 110020006B
- Authority
- CN
- China
- Prior art keywords
- query
- query statement
- language
- native language
- statement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue systems
Abstract
本发明公开了一种查询语句的生成方法及相关设备,其中,所述查询语句的生成方法中,由于接收的是采用中间语言编写的第一查询语句,对第一查询语句的输入用户的技术性要求不高,可以保证一般的用户均可以输入查询语句,且可以将用户输入的查询语句,转换得到原生语言的查询语句,还可以保证以原生语言的查询语句执行查询操作,完成ElasticSearch数据库的查询操作。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种查询语句的生成方法及相关设备。
背景技术
ElasticSearch是一个基于Lucene的搜索服务器,在对其进行查询搜索时,需要用户输入计算机容易理解的Json格式的查询语句。由于该格式的查询语句内容复杂,对用户的专业性要求较高。为此,开发者会针对一些查询逻辑定义好一种固定的查询方式,在需要用户输入查询语句时,用户选择查询方式并输入具体的查询参数。
但是,由于查询语句可能涉及的查询逻辑是多种多样的,开发者无法针对每一种查询逻辑均定义好查询方式,并且,一般仅能对较为简单的查询逻辑定义查询方式,对于较为复杂的查询逻辑,无法为其对应的查询方式,因此,在此种情况下,就还需要用户输入Json格式的查询语句,若用户的专业性不够,则会导致无法进行查询。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的查询语句的生成方法及相关设备。
一种查询语句的生成方法,包括:
接收由中间语言编写的第一查询语句,其中,所述中间语言符合自然语言的语法规律;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
可选地,所述第一查询语句包括查询条件。
可选地,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
可选地,若所述第一查询语句包含一个所述查询条件,则所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
依据所述原生语言的查询条件,生成所述第二查询语句。
可选地,若所述第一查询语句包含多个所述查询条件,则所述第一查询语句还包括:用于表征所述多个查询条件的关系的运算符;以及
所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
可选地,若所述第一查询语句中还包括调整所述多个查询条件的执行顺序的优先级符号,则将得到的所述多个查询条件和对应的运算符,组成第一表达式树,包括:
依据所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
一种查询语句的生成装置,包括:
接收单元,用于接收由中间语言编写的第一查询语句,其中,所述中间语言符合自然语言的语法规律;
转换单元,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
可选地,所述第一查询语句包括查询条件;其中,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
一种存储介质,用于存储程序,所述程序被执行时,用于实现如上述任意一项所述查询语句的生成方法。
一种处理器,用于运行程序,其中,所述程序被运行时用于执行:如上述任意一项所述的查询语句的生成方法。
借由上述技术方案,本发明提供的查询语句的生成方法中,由于接收的是采用中间语言编写的第一查询语句,对第一查询语句的输入用户的技术性要求不高,可以保证一般的用户均可以输入查询语句,且可以将用户输入的查询语句,转换得到原生语言的查询语句,还可以保证以原生语言的查询语句执行查询操作,完成ElasticSearch数据库的查询操作。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例公开的查询语句的生成方法的流程图;
图2示出了本发明另一实施例公开的查询语句的生成方法的流程图;
图3示出了本发明实施例公开的实例中第一表达式树的展示图;
图4示出了本发明另一实施例公开的查询语句的生成装置的结构示意图;
图5示出了本发明另一实施例公开的查询语句的生成装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例公开的查询语句的生成方法,参见图1,包括步骤:
S101、接收采用中间语言编写的第一查询语句。
其中,所述中间语言为非技术人员使用的易读的语言,其符合自然语言的语法规律,满足人类语言的语法要求。
具体的,用户需要在ElasticSearch数据库中执行查询操作,则会输入该查询操作对应的查询语句,且考虑到非技术人员的技术局限性,输入的查询语句的所使用的语言的格式并不是常规的、复杂的Json格式,而是对技术性要求比较低的语言。
并且,要在ElasticSearch数据库中执行查询操作时,会不断接收查询语句,当用户完成查询语句的输入操作后,能够保证接收到该查询语句。
可选地,本发明的另一实施例公开的步骤S101的具体实施方式中,该步骤包括:
接收第一查询语句,所述第一查询语句包括查询条件。
可选地,所述查询条件包括:查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
需要说明的是,由所述查询方式和所述查询内容组成的符合自然语言的语法规律的表达式中,仅包括执行查询操作的有效内容,即对查询操作中能利用上的内容,不包括诸如{}之类的对查询操作无用的内容。
还需要说明的是,所述查询条件可分为字段名、查询方式、查询参数三部分,其中,字段名和查询参数即为查询内容。具体的,查询条件的格式可以为:"字段名:查询方式:查询参数",即一个查询条件的三个部分位于一个双引号内,且一个查询条件的不同部分均以英文冒号分隔。并且,若某一部分分为多个内容,可以采用逗号隔开不同的内容,例如:"title:term:word1,word2",该查询条件表示在标题上以term方式查询,查询词是word1和word2。
另外,还需要说明的是,在实际使用过程中,一个查询条件并非一定包含字段名、查询方式和查询参数三个部分的具体内容,若不包含查询方式,可以理解成是采用默认的查询方式进行查询,且默认的查询方式可以依据具体情况进行设定。
S102、根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
本实施例公开的查询语句的生成方法中,由于接收的是采用中间语言编写的第一查询语句,对第一查询语句的输入用户的技术性要求不高,可以保证一般的用户均可以输入查询语句,且可以将用户输入的查询语句,转换得到原生语言的查询语句,还可以保证以原生语言的查询语句执行查询操作,完成ElasticSearch数据库的查询操作。
可选地,本发明的另一实施例中,若用户输入的第一查询语句中的查询条件为一个,那仅需要对包含有一个查询条件的第一查询语句执行转换操作,具体的,步骤S102,包括:
S1021、根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
其中,预先建立的中间语言与原生语言间的对应关系中,包括中间语言编写的查询条件和原生语言的查询条件的对应关系。待接收到所述第一查询语句后,提取所述第一查询语句中的查询条件,根据所述对应关系,生成原生语言的查询条件。
S1022、依据所述原生语言的查询条件,生成所述第二查询语句。
具体的,生成所述原生语言的查询条件,需要得到其对应的查询语句,其中,可以是添加符合ElasticSearch数据库中的语言格式要求的符号等,例如:生成ElasticSearch数据库通过bool查询方式的格式要求的查询语句。
还需要说明的是,用户输入的第一查询语句一般为更为复杂的查询语句,其包含的查询条件一般为多个,若包含有多个查询条件时,则还需要在第一查询语句中包含有表明多个查询条件间的运算关系的运算符。以下以一个完整的实施例的方式,对包含有多个查询条件的第一查询语句的生成过程进行说明。
本实施例,参见图2,公开的查询语句的生成方法,包括步骤:
S201、接收第一查询语句,所述第一查询语句包括多个查询条件和表明多个查询条件间的关系的运算符。
其中,在第一查询语句中,每一个查询条件均可以位于一个双引号内,且再按照查询条件的执行顺序中,前后两个查询条件之间设置运算符,用于表明该两个查询条件间的关系。
具体的,运算符可以包含几类,例如:算术运算符、逻辑运算符;其中,算术运算符包括:*-+/2,逻辑运算符包括:and、or。
在本发明的一个实例中,接收的第一查询语句为:
"title:term:word1,word2"and"content:match_phrase:word3,word4"and"title:word5"。
其中,该第一查询语句中的查询条件分别为:title:term:word1,word2、content:match_phrase:word3,word4和title:word5;运算符为逻辑运算符and。并且,还需要说明的是,由于查询条件title:word5中没有包含查询方式,因此,默认该查询条件使用match_phrase_prefix查询方式。
可选地,本发明的另一实施例中,所述第一查询语句中还可以包括:优先级符号,例如小括号,该优先级符号用于调整所述查询条件的执行顺序,例如:接收的查询语句为:"title:term:word1,word2"and("content:match_phrase:word3,word4"and"title:word5")。该第一查询语句中,要先小括号内的查询条件,后执行第一个查询条件。
S202、以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件。
其中,由于一个第一查询语句中,运算符位于两个查询条件的中间,用以表明这两个查询条件的关系,因此,可以以运算符为拆分的分界点,对第一查询语句进行拆分,进而得到所述第一查询语句包含的多个查询条件。
续接上述实例,以and为分界点拆分查询语句后,得到的多个查询条件为:title:term:word1,word2;content:match_phrase:word3,word4和title:word5。
S203、将得到的所述多个查询条件和对应的运算符,组成第一表达式树。
具体的,按照所述第一查询语句中的多个查询条件的执行顺序,将每一个查询条件和该查询条件和与该查询条件有运算关系的查询条件,组成第一表达式树的一层,且这两个查询条件之间设置运算符。
还需要说明的是,根据由下到上的顺序,分别将多个查询条件和对应的运算符,组成第一表达式树。
续接上述实例,参见图3,查询条件title:term:word1,word2和查询条件content:match_phrase:word3,word4,形成了第一表达式树的第一层,其之间的运算符为and,这两个查询条件以该运算符进行运算的执行结果,以及查询条件title:word5形成了第一表达式树的第二层,查询条件title:term:word1,word2和查询条件content:match_phrase:word3,word4的执行结果,再与查询条件title:word5进行与操作的执行结果,即为第一表达式树的第三层,也是第一查询语句的执行结果。
可选地,本发明的另一实施例中,若第一查询语句中还包括有优先级符号,则在得到第一表达式树的具体实现方式为:
依照所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
其中,优先级符号可以调整查询条件的执行顺序,要先执行位于优先级符号内部的查询条件,后执行没有位于优先级符号内部的查询条件,因此,位于优先级符号内部的查询条件会位于第一表达式树的下层。
还需要说明的是,若一个第一查询语句中包含多个优先级符号,那多个优先级符号也要按照从左到右的执行顺序先后执行。
S204、根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符。
其中,因为接收的查询条件是以中间语言编写的,而在ElasticSearch数据库进行查询操作,需要采用Json格式,因此,需要将第一表达式树中的查询条件和运算符均转换成原生语言的查询条件和运算符。
具体的,可以预先构建中间语言编写的查询条件、运算符和原生语言编写的查询条件、运算符之间对应关系,依照该对应关系,得到第一表达式树中的各个查询条件对应的原生语言的查询条件,以及第一表达式树中的运算符对应的原生语言运算符。
续接上述实例,该实例中,各个查询条件和转换后的原生语言如下表。
S205、依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
其中,第一表达式树中的层级关系,用于表明第一查询语句中的查询条件的执行顺序,一般为从下到上的执行顺序。按照第一表达式树中的层级关系所代表的前后顺序,拼接所述原生语言的查询条件和所述原生语言的运算符,即可得到所述第二查询语句。
接续上述实例,进行拼接形成的所述第二查询语句如下:
本发明另一实施例还公开了一种查询语句的生成装置,如图4所示,包括:
接收单元301,用于接收由中间语言编写的第一查询语句,其中,所述中间语言符合自然语言的语法规律;
转换单元302,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
可选地,本发明的另一实施例中,所述第一查询语句包括查询条件。
可选地,本发明的另一实施例中,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
其中,上述实施例中公开的各个单元的具体工作过程,可参见对应图1的方法实施例的内容,此处不再赘述。
本发明实施例公开的查询语句的生成装置中,由于接收单元接收的是采用中间语言编写的第一查询语句,对第一查询语句的输入用户的技术性要求不高,可以保证一般的用户均可以输入第一查询语句,且转换单元可以将用户输入的第一查询语句,转换得到原生语言的查询语句,还可以保证以原生语言的查询语句执行查询操作,完成ElasticSearch数据库的查询操作。
可选地,本发明的另一实施例中,若所述接收单元接收的所述第一查询语句中包含一个查询条件,参见图5,转换单元302,包括:
第一转换子单元3021,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
第一生成单元3022,用于依据所述原生语言的查询条件,生成所述第二查询语句。
还需要说明的是,本发明的另一实施例中,若所述接收单元接收的所述第一查询语句中包含多个查询条件,则所述第一查询语句还包括用于表征所述多个查询条件的关系的运算符;如图5所示,转换单元302,包括:
拆分单元3023,用于以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
组合单元3024,用于将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
第二转换子单元3025,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
第二生成单元3026,用于依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
可选地,本发明的另一实施例中,若所述第一查询语句中还包括调整所述多个查询条件的执行顺序的优先级符号,则所述组合单元,包括:
组合子单元,用于依据所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
其中,本发明实施例公开的各个单元的具体工作过程,可参见对应图2的方法实施例的内容,此处也不再赘述。
所述查询语句的生成装置包括处理器和存储器,上述接收单元、转换单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现通过简单语言编写的查询语句,来实现对ElasticSearch数据库的查询操作。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述查询语句的生成方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述查询语句的生成方法。
本发明实施例提供了一种设备,本文中的设备可以是服务器、PC、PAD、手机等。设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
接收采用由中间语言编写的第一查询语句,其中,所述中间语言符合自然语言的语法规律;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
可选地,所述第一查询语句包括查询条件。
可选地,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
可选地,若所述第一查询语句包含一个所述查询条件,则所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
依据所述原生语言的查询条件,生成所述第二查询语句。
可选地,若所述第一查询语句包含多个所述查询条件,则所述第一查询语句还包括:用于表征所述多个查询条件的关系的运算符;以及
所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
可选地,若所述第一查询语句中还包括调整所述多个查询条件的执行顺序的优先级符号,则将得到的所述多个查询条件和对应的运算符,组成第一表达式树,包括:
依据所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
接收采用由中间语言编写的第一查询语句,其中,所述中间语言符合自然语言的语法规律;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句。
可选地,所述第一查询语句包括查询条件。
可选地,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
可选地,若所述第一查询语句包含一个所述查询条件,则所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
依据所述原生语言的查询条件,生成所述第二查询语句。
可选地,若所述第一查询语句包含多个所述查询条件,则所述第一查询语句还包括:用于表征所述多个查询条件的关系的运算符;以及
所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
可选地,若所述第一查询语句中还包括调整所述多个查询条件的执行顺序的优先级符号,则将得到的所述多个查询条件和对应的运算符,组成第一表达式树,包括:
依据所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (9)
1.一种查询语句的生成方法,其特征在于,包括:
接收由中间语言编写的第一查询语句,其中,所述中间语言为普通用户所使用的易读的语言,并且符合自然语言的语法规律;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句;
其中,若第一查询语句包含多个查询条件时,则所述第一查询语句还包括:用于表征多个查询条件的关系的运算符;以及
所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
2.根据权利要求1所述的方法,其特征在于,所述第一查询语句包括查询条件。
3.根据权利要求2所述的方法,其特征在于,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
4.根据权利要求2或3所述的方法,其特征在于,若所述第一查询语句包含一个所述查询条件,则所述根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句,包括:
根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句中的查询条件,得到原生语言的查询条件;
依据所述原生语言的查询条件,生成所述第二查询语句。
5.根据权利要求1所述的方法,其特征在于,若所述第一查询语句中还包括调整所述多个查询条件的执行顺序的优先级符号,则将得到的所述多个查询条件和对应的运算符,组成第一表达式树,包括:
依据所述优先级符号的要求,组合所述多个查询条件和对应的运算符,得到第一表达式树。
6.一种查询语句的生成装置,其特征在于,包括:
接收单元,用于接收由中间语言编写的第一查询语句,其中,所述中间语言为普通用户所使用的易读的语言,并且符合自然语言的语法规律;
转换单元,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一查询语句,得到采用原生语言编写的第二查询语句;
其中,若所述接收单元接收的所述第一查询语句中包含多个查询条件,则所述第一查询语句还包括用于表征所述多个查询条件的关系的运算符,转换单元,包括:
拆分单元,用于以所述运算符为分界点拆分所述第一查询语句,得到所述多个查询条件;
组合单元,用于将得到的所述多个查询条件和对应的运算符,组成第一表达式树;
第二转换子单元,用于根据预先建立的中间语言与原生语言间的对应关系转换所述第一表达式树中的查询条件和运算符,得到原生语言的查询条件和原生语言的运算符;
第二生成单元,用于依据所述第一表达式树中的层级关系,拼接所述原生语言的查询条件和所述原生语言的运算符,得到所述第二查询语句。
7.根据权利要求6所述的装置,其特征在于,所述第一查询语句包括查询条件;其中,所述查询条件包括查询方式和查询内容,且所述查询方式和所述查询内容组成符合自然语言的语法规律的表达式。
8.一种存储介质,其特征在于,用于存储程序,所述程序被执行时,用于实现如权利要求1-5任意一项所述查询语句的生成方法。
9.一种处理器,其特征在于,用于运行程序,其中,所述程序被运行时用于执行:如权利要求1-5任意一项所述的查询语句的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625972.3A CN110020006B (zh) | 2017-07-27 | 2017-07-27 | 查询语句的生成方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710625972.3A CN110020006B (zh) | 2017-07-27 | 2017-07-27 | 查询语句的生成方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020006A CN110020006A (zh) | 2019-07-16 |
CN110020006B true CN110020006B (zh) | 2021-04-27 |
Family
ID=67185982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710625972.3A Active CN110020006B (zh) | 2017-07-27 | 2017-07-27 | 查询语句的生成方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020006B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674179A (zh) * | 2019-09-24 | 2020-01-10 | 政采云有限公司 | 一种查询接口的生成方法、装置及介质 |
CN110647667A (zh) * | 2019-09-24 | 2020-01-03 | 北京华顺信安科技有限公司 | 一种用于资产检索的dsl语句转换与查询方法及装置 |
CN111026931A (zh) * | 2019-12-09 | 2020-04-17 | 中国建设银行股份有限公司 | 一种数据查询方法、装置、设备及介质 |
CN111475588B (zh) * | 2020-06-19 | 2020-12-08 | 阿里云计算有限公司 | 数据处理方法及装置 |
CN113268495A (zh) * | 2021-05-25 | 2021-08-17 | 深圳壹账通智能科技有限公司 | 数据搜索方法、装置、电子设备及存储介质 |
CN113326405B (zh) * | 2021-06-30 | 2022-12-13 | 数云科际(深圳)技术有限公司 | 基于bim技术的园区入驻推荐方法以及系统 |
CN117312420A (zh) * | 2022-06-21 | 2023-12-29 | 华为云计算技术有限公司 | 一种数据共享方法及相关系统 |
CN116127976B (zh) * | 2023-01-09 | 2023-12-05 | 中国司法大数据研究院有限公司 | 公司名称的匹配方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106934062A (zh) * | 2017-03-28 | 2017-07-07 | 广东工业大学 | 一种查询elasticsearch的实现方法及系统 |
CN109145009A (zh) * | 2018-08-19 | 2019-01-04 | 杭州安恒信息技术股份有限公司 | 一种基于SQL检索ElasticSearch的方法 |
CN111046060A (zh) * | 2019-12-11 | 2020-04-21 | 杭州安恒信息技术股份有限公司 | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI255409B (en) * | 2005-01-21 | 2006-05-21 | Hon Hai Prec Ind Co Ltd | Method for transforming grammar to search patent information |
CN100452047C (zh) * | 2005-12-27 | 2009-01-14 | 国际商业机器公司 | 执行关系数据库搜索的系统和方法 |
US7827523B2 (en) * | 2006-02-22 | 2010-11-02 | Yahoo! Inc. | Query serving infrastructure providing flexible and expandable support and compiling instructions |
CN101242409B (zh) * | 2008-01-18 | 2010-12-08 | 南京邮电大学 | 一种多语言的网络数据包高效过滤的方法 |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
JP5699789B2 (ja) * | 2011-05-10 | 2015-04-15 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム及び情報処理システム |
CN103870456B (zh) * | 2012-12-07 | 2017-03-29 | 华东师范大学 | 一种面向大规模数据的索引方法及其系统 |
US9904672B2 (en) * | 2015-06-30 | 2018-02-27 | Facebook, Inc. | Machine-translation based corrections |
CN105824957B (zh) * | 2016-03-30 | 2019-09-03 | 电子科技大学 | 分布式内存列式数据库的查询引擎系统及查询方法 |
-
2017
- 2017-07-27 CN CN201710625972.3A patent/CN110020006B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN105868249A (zh) * | 2015-12-15 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据查询控制方法及装置 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106934062A (zh) * | 2017-03-28 | 2017-07-07 | 广东工业大学 | 一种查询elasticsearch的实现方法及系统 |
CN109145009A (zh) * | 2018-08-19 | 2019-01-04 | 杭州安恒信息技术股份有限公司 | 一种基于SQL检索ElasticSearch的方法 |
CN111046060A (zh) * | 2019-12-11 | 2020-04-21 | 杭州安恒信息技术股份有限公司 | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110020006A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020006B (zh) | 查询语句的生成方法及相关设备 | |
CN110083806B (zh) | 用于语言转换的时间转换语法 | |
US9760551B2 (en) | Generating regular expression | |
CN111898643B (zh) | 一种语义匹配方法及装置 | |
EP3353672A1 (en) | Method and apparatus for transferring data between databases | |
US11699073B2 (en) | Network off-line model processing method, artificial intelligence processing device and related products | |
CN110554875B (zh) | 代码转换方法及装置、电子设备、存储介质 | |
CN112136296B (zh) | 训练会话代理的方法、计算机设备和存储介质 | |
CN102810060A (zh) | 一种安致图片资源配置方法及装置 | |
CN110020353B (zh) | 网页表单的构建方法及装置 | |
CN107506247A (zh) | 一种基于异步回调的任务处理方法与设备 | |
US20210157553A1 (en) | Source code auto-suggestion based on structural and semantic features | |
CN107515739B (zh) | 提高代码执行性能的方法及装置 | |
US10387124B2 (en) | System and method for creating domain specific language | |
US20180113850A1 (en) | Workflow generation from natural language statements | |
CN108446266B (zh) | 一种语句拆分的方法、装置及设备 | |
CN110633959A (zh) | 基于图结构的审批任务创建方法、装置、设备及介质 | |
CN108170661B (zh) | 一种规则文本的管理方法及系统 | |
CN113079201B (zh) | 一种信息的处理系统、方法、装置及设备 | |
CN109582776B (zh) | 模型的生成方法及装置、电子设备及存储介质 | |
CN106648913B (zh) | 数据采集软件标识方法及装置 | |
JP2018045657A (ja) | 学習装置、プログラムパラメータおよび学習方法 | |
CN111142871A (zh) | 一种前端页面开发系统、方法、设备、介质 | |
JP7029351B2 (ja) | Oos文章を生成する方法及びこれを行う装置 | |
CN111126066B (zh) | 基于神经网络的中文修辞手法的确定方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |