CN117076727A - 一种查询语句解析方法、装置、设备和存储介质 - Google Patents
一种查询语句解析方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN117076727A CN117076727A CN202311050581.5A CN202311050581A CN117076727A CN 117076727 A CN117076727 A CN 117076727A CN 202311050581 A CN202311050581 A CN 202311050581A CN 117076727 A CN117076727 A CN 117076727A
- Authority
- CN
- China
- Prior art keywords
- request
- query
- target
- query statement
- executable code
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 61
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 9
- 230000011218 segmentation Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 238000001914 filtration Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000037396 body weight Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/90335—Query processing
-
- 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/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9532—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/253—Grammatical analysis; Style critique
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及计算机领域,公开了一种查询语句解析方法、装置、设备和存储介质。该方法包括:获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;从预设的多个解析算法中选取目标解析算法;采用目标解析算法,将查询语句转换为可执行代码,并将可执行代码中的请求参数转换为请求计算式;根据请求计算式并调用可执行代码,以获取目标请求值。本实施例实现了查询语句解析的自动化,提高了查询操作的处理效率,从而可以准确且快速的处理大量的查询请求,提高用户满意度。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种查询语句解析方法、装置、设备和存储介质。
背景技术
随着网页(即web)应用程序的广泛使用,页面端请求处理变得越来越复杂。在许多网页应用程序中,通过页面端发起的查询请求是通过HTTP协议发送的,并且该查询请求通常包括一组参数和值,这些参数和值由网页服务器解析并传递给应用程序后处理。而对于大规模的网页应用程序而言,如电子商务网站或社交媒体平台等平台,由于其查询请求中所包含的参数和值的解析流程的复杂性,使得处理这些查询请求可能会变得非常耗时和复杂。进而,如何实现查询语句的快速解析以快速实现查询请求的执行是个亟需解决的问题。
发明内容
有鉴于此,为了解决现有技术存在的问题,本申请提供了一种可应用于如金融科技等领域或其他领域的查询语句解析方法、装置、设备和存储介质。
第一方面,本申请提供一种查询语句解析方法,包括:
获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,所述请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;
从预设的多个解析算法中选取目标解析算法;
采用所述目标解析算法,将所述查询语句转换为可执行代码,并将所述可执行代码中的请求参数转换为请求计算式;
根据所述请求计算式并调用所述可执行代码,以获取目标请求值。
在可选的实施方式中,所述将所述可执行代码中的请求参数转换为请求计算式,包括:
采用预设的请求处理器类对所述可执行代码进行预设格式处理,以读取所述可执行代码中各个请求参数的基本信息;每个所述请求参数的基本信息包括操作符、函数名、参数;
将每个所述请求参数的基本信息中的各个元素按照预设的排列顺序进行组合,生成请求计算式。
在可选的实施方式中,所述将所述查询语句转换为可执行代码,包括:
将所述查询语句按照预设的语法定义规则进行分词处理,得到多个标记字符;
将所有所述标记字符组合成第一语法树,并采用语法规则对所述第一语法树进行优化;
将优化后的所述第一语法树转换为可执行代码。
在可选的实施方式中,所述获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句,包括:
根据用户输入的关键字,从预先定义的请求参数模式中匹配目标参数模式;
将所述关键字按照所述目标参数模式组合形成第二语法树;
根据所述第二语法树对应的语法规则,将所述第二语法树转换为待解析的查询语句。
在可选的实施方式中,所述从预设的多个解析算法中选取目标解析算法,包括:
计算所述查询语句中的各个请求参数的数量和,以及计算所述查询语句的复杂度;
根据所述数量和以及所述复杂度,从多个解析算法中确定目标解析算法。
在可选的实施方式中,所述根据所述数量和以及所述复杂度,从多个解析算法中确定目标解析算法,包括:
分别将所述数量和以及所述复杂度对应与预设层级进行匹配,得到目标层级;
按照预先设置的解析算法匹配规则,从多个解析算法中查找与所述目标层级适配的目标解析算法。
在可选的实施方式中,所述根据所述请求计算式并调用所述可执行代码,以获取目标请求值,包括:
通过所述可执行代码运行所述请求计算式,从预设数据库中查找得到目标请求值;
向预设的请求处理器返回所述目标请求值;所述请求处理器用于向所述用户返回所述目标请求值。
第二方面,本申请提供一种查询语句解析装置,包括:
生成模块,用于获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,所述请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;
选取模块,用于从预设的多个解析算法中选取目标解析算法;
转换模块,用于采用所述目标解析算法,将所述查询语句转换为可执行代码,并将所述可执行代码中的请求参数转换为请求计算式;
调用模块,用于根据所述请求计算式并调用所述可执行代码,以获取目标请求值。
第三方面,本申请提供一种计算机设备,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施前述的查询语句解析方法。
第四方面,本申请提供一种计算机存储介质,其存储有计算机程序,所述计算机程序被执行时,实施根据前述的查询语句解析方法。
本申请实施例具有如下有益效果:
本申请实施例提供了一种查询语句解析方法,该方法包括:获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;从预设的多个解析算法中选取目标解析算法;采用目标解析算法,将查询语句转换为可执行代码,并将可执行代码中的请求参数转换为请求计算式;根据请求计算式并调用可执行代码,以获取目标请求值。本实施例实现了查询语句解析的自动化,提高了查询操作的处理效率,从而可以准确且快速的处理大量的查询请求,提高用户满意度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对本申请保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例中查询语句解析方法的第一个实施方式示意图;
图2示出了本申请实施例中查询语句解析方法的第二个实施方式示意图;
图3示出了本申请实施例中查询语句解析方法的第三个实施方式示意图;
图4示出了本申请实施例中查询语句解析方法的第四个实施方式示意图;
图5示出了本申请实施例中查询语句解析方法的第五个实施方式示意图;
图6示出了本申请实施例中查询语句解析方法的第六个实施方式示意图;
图7示出了本申请实施例中查询语句解析装置的一种结构示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在下文中,可在本申请的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本申请的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本申请的各种实施例中被清楚地限定。
许多网页应用程序使用模式查询语言(即PQL)来自动解析页面端请求。PQL是一种用于描述请求参数的语言,通常采用类似于SQL的语法。使用PQL,页面端开发人员可以定义请求参数的模式,然后传递给应用程序进行处理。
基于此,本申请提供一种查询语句解析方法,设置了一个自适应算法来优化查询语句的解析过程,以选取最优的目标解析算法来解析查询语句,从而提高查询语句的解析性能并减少解析器的开销。此外,本实施例通过采用模式化的查询语句来描述查询请求,简化了语法并提高了代码可读性,具有较好的实用性。
请参照图1,下面对该方法进行详细说明。其中,该方法可应用于如搭载有数据库的服务器或终端设备等计算机设备,本实施例具体以服务器为例进行说明。
S10,获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句。
用户若在网页端发起查询操作时,通过网页向服务器输入关键字用于查询相应的数据;进而,服务器接收到用户输入的关键字后,生成网页查询请求,该网页查询请求用于向数据库查找目标数据。在后台处理过程中,该网页查询请求可通过至少一条模式化的查询语句(即PQL语句)进行实现。本实施例通过所生成的模式化查询语句来执行查询操作,提高了查询的灵活度,使其能够适应不同类型的请求和查询条件,从而可以更加准确地匹配查询条件,提高了查询结果的精度和准确性。
可以理解,服务器通过该关键字和预先定义的请求参数模式,生成待解析的查询语句,而后基于该查询语句执行查询操作,来获取目标请求值。其中,该关键字即为用于生成查询语句的请求参数,预先定义的请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息。每个请求参数对应一个请求参数模式。
在本实施例中,预先定义多个请求参数模式,且通过一个JSON格式文件来对应保存一个定义的请求参数模式信息。其中,每个请求参数模式包括请求参数的名称、数据类型和其他元数据信息。
在定义请求参数模式时,定义好每个请求参数的名称以及其对应的数值类型(如整数、定点数、字符串等),并将所有可能出现的请求参数及其名称列举出来并按照数据类型分组,对于每一个请求参数组,定义其查询模式,包括逻辑运算符、关键字和各个请求参数组之间的关系;进而再制定一套规范的自然语言描述请求参数和值的语法,后续可通过该语法来将请求参数模式及其对应的请求参数转换生成查询语句。
示例的,下述是一个JSON文件,该JSON文件内包含一个名为“search”的请求参数模式:
{"name":"search","type":"object","properties":{"query":{"type":"string","description":"Thesearchquery"},"filter":{"type":"string","description":"Thesearch filter"},"limit":{"type":"integer","description":"Themaximumnumberofresultstor eturn"}}}。
进一步地,如图2所示,上述S10具体包括如下步骤:
S11,根据用户输入的关键字,从预先定义的请求参数模式中匹配目标参数模式。
S12,将关键字按照目标参数模式组合形成第二语法树。
S13,根据第二语法树对应的语法规则,将第二语法树转换为待解析的查询语句。
将用户输入的关键字作为请求参数,基于该请求参数匹配目标请求参数模式,而后通过该目标请求参数模式并结合语法来描述该请求参数,对应生成语法树,将其作为第二语法树。通过相应语法规则即可将第二语法树转换为查询语句。
此外,本实施例采用自然语言对应的语法来描述请求参数以生成查询语句。具体地,首先对每个请求参数的查询模式进行梳理和归纳。示例的,请求参数“日期”可以有“大于”、“等于”、“小于”三种查询模式。然后,将这些查询模式与相应的关键字和逻辑运算符关联起来,形成该请求参数对应查询模式的语法树(即第二语法树)。在本实施例中通过使用自然语言来描述请求参数以生成查询语句,可以使得查询语句对应的代码脚本清晰易懂,方便后续对该查询语句进行处理。
需要注意的是,采用自然语言描述请求参数和请求参数值的语句组装时,需要遵循语法树的结构,按照查询模式的顺序,逐个描述每个请求参数的查询条件。例如,查询条件为“日期大于2020年1月1日”。
对于某些需要多个请求参数组合查询的情况,需要根据各个请求参数组之间的关系制定相应的语法规则。例如,“查询体重大于70kg且年龄小于30岁的用户”,其中“大于”和“小于”两个请求参数组之间需要使用“且”的逻辑运算符进行组合。
最后,将自然语言描述的语句转换为查询语句,具体通过预先定义的每种查询模式的对应查询语句代码,对自然语言中的关键字、逻辑运算符进行转换。例如,“日期大于2020年1月1日”可以转换为“date>'2020-01-01'”。
值得说明的是,在根据各个请求参数及其对应的请求参数模式生成查询语句时,还需要将用户输入的关键词转换成数据库中相应的字段,并采用模糊匹配等查询方式进行查询。若该请求参数存在排序的查询模式,则还需根据用户选择的排序方式,将其转换成相应的查询语句。或是,若该请求参数存在过滤的查询模式,则根据用户设置的过滤条件,生成相应的查询语句,其中,该过程可以使用各种逻辑运算符来实现复杂的过滤条件,例如AND、OR、NOT等。
也即是,在生成查询语句时,首先将用户输入的关键字转换为请求参数;而后,确定该请求参数对应的目标请求参数模式,该目标请求参数模式包括该请求参数名称、查询模式等信息,采用自然语言按照语法描述该目标请求参数模式和请求参数,选取与查询模式匹配的逻辑运算符,以组合各个请求参数,并将各个请求参数、逻辑运算符转换为相应的查询语句代码,从而生成查询语句。
示例的,使用自然语言描述的“search”请求的查询语句为:SELECT*FROM searchWHERE query='...'AND filter='...'LIMIT...。
S20,从预设的多个解析算法中选取目标解析算法。
根据所生成的查询语句,从预设的多个解析算法中匹配目标解析算法,从而通过该目标解析算法来解析查询语句。
作为一种可选的实施方式,如图3所示,上述S20具体包括如下步骤:
S21,计算查询语句中的各个请求参数的数量和,以及计算查询语句的复杂度。
S22,根据数量和以及复杂度,从多个解析算法中确定目标解析算法。
在本实施例中,计算该查询语句中所涉及的请求参数的数量总和,并根据该请求参数的数量总和来计算该查询语句的复杂度。而后,通过该请求参数的数量和以及查询语句的复杂度来匹配目标解析算法。
进一步地,如图4所示,上述S22具体包括如下步骤:
S221,分别将数量和以及复杂度对应与预设层级进行匹配,得到目标层级。
S222,按照预先设置的解析算法匹配规则,从多个解析算法中查找与目标层级适配的目标解析算法。
在本实施例中,预先针对不同的请求参数数量和以及查询语句复杂度来设置多个层级,每个层级对应一个请求参数数量和范围或是查询语句复杂度范围,且每个层级关联一个解析算法。进而,通过将所生成的查询语句对应的数量和以及复杂度与各个层级进行对比,判断该数量和以及复杂度是否落在该层级对应的范围区间内,从而按照预先设置的解析算法匹配规则并根据判断结果匹配得到与该层级对应的解析算法。其中,若该数量和或复杂度均落在该层级对应的范围区间内,则将该层级作为目标层级,并将该目标层级对应关联的解析算法作为目标解析算法。
可以理解,根据请求参数的数量和查询语句复杂度来选取解析算法的标准是,当请求参数数量较少且复杂度低时,可以使用简单的解析算法,如字符串分割算法等;当请求参数数量较大且复杂度较高时,应该使用一些更高效、更稳定的解析算法,如XML解析器或JSON解析器等。
在本实施例中,该解析算法与请求参数数量和以及查询语句复杂度之间的对应关系、解析算法的类型、各个层级对应范围区间的具体设置均可根据实际需求进行设置,在此不做限定。
S30,采用目标解析算法,将查询语句转换为可执行代码,并将可执行代码中的请求参数转换为请求计算式。
通过选取的目标解析算法对查询语句进行解析,使其转换为可执行代码,并将该查询语句中的请求参数转换为请求计算式。
在一实施方式中,如图5所示,在上述S30中的“将查询语句转换为可执行代码”具体包括如下步骤:
S31,将查询语句按照预设的语法定义规则进行分词处理,得到多个标记字符。
S32,将所有标记字符组合成第一语法树,并采用语法规则对第一语法树进行优化。
S33,将优化后的第一语法树转换为可执行代码。
将查询语句按照上述的语法所定义的规则进行分词处理,得到多个标记字符(即Token),如操作符、关键字、变量名等。该语法即为在生成查询语句时对应采用的自然语言的语法。而后,将分词后的标记字符组成语法树,将其作为第一语法树,并根据语法规则对第一语法树进行语义分析和优化。在完成优化后,将第一语法树转换为目标程序,生成可执行的机器代码或其他代码形式的可执行代码。
需要注意的是,若解析多个查询语句时,需要考虑各个查询语句的逻辑顺序,以及该查询语句中表达式和操作符的计算优先级。在将查询语句转换为可执行代码时,需要考虑代码的可读性、可维护性、可重用性、高效性等因素。其中,可执行代码应该具备以下元素:1、语法正确:生成的代码必须符合所选编程语言的语法规则。2、可读性:代码应该易于阅读和理解,采用恰当的命名、缩进、注释等技巧。3、可维护性:代码应该易于维护和修改,尽量避免代码冗余、复杂度过高等问题。4、可重用性:代码应该能够被多个程序调用和复用,可以封装成函数或类等形式。5、高效性:代码应该尽可能地高效,执行速度和资源占用应该得到优化。
在一实施方式中,如图6所示,在上述S30中的“将可执行代码中的请求参数转换为请求计算式”具体包括如下步骤:
S34,采用预设的请求处理器类对可执行代码进行预设格式处理,以读取可执行代码中各个请求参数的基本信息。
S35,将每个请求参数的基本信息中的各个元素按照预设的排列顺序进行组合,生成请求计算式。
解析该查询语句时,还将查询语句(或可执行代码)中的请求参数转换为请求计算式。其中,解析查询语句的过程分为:读取请求参数、解析可执行代码、按照查询语句中的逻辑顺序组合请求计算式、执行请求计算式、返回目标请求值。
进一步地,读取请求参数,并将其转换生成请求计算式的过程可以通过一个预设的请求处理器来实现。进而,该请求处理器将可执行代码按照预定的格式进行处理,以读取并分别解析可执行代码中的请求参数名称、函数名、操作符等基本信息。其中,对于每一个操作符,在解析过程中使用一个栈来记录从左至右执行的顺序,保证操作符的优先级得到正确处理。
而后,根据所解析出的如请求参数名称、函数名、操作符等各个元素,按照相应的查询语句中的逻辑顺序以及每个查询语句中各个操作符的优先级顺序,将解析出的各个元素组合成一条完整的请求计算式。后续可将请求计算式传递给可执行代码,以通过可执行代码来执行请求计算式,从而得到目标请求值。
S40,根据请求计算式并调用可执行代码,以获取目标请求值。
在本实施例中,通过可执行代码运行请求计算式,从预设数据库中查找得到目标请求值;向预设的请求处理器返回目标请求值;其中,请求处理器用于向用户返回目标请求值。
具体地,调用可执行代码获取请求计算式,并通过可执行代码执行请求计算式,从数据库中查找得到相应的目标请求值。其中,可将目标请求值返回给请求处理器,从而通过请求处理器将目标请求值返回给用户,已完成查询操作。
在本实施例中,通过选取目标解析算法来自动化解析查询语句,提高查询语句解析效率,进而方便后续通过解析后的查询语句执行查询操作来获取目标请求值,提高了查询操作的处理效率;并且,由于整个过程是自动化实现,减轻了开发人员的工作量,并降低了出现错误的可能性,开发人员只需要定义相应规则即可。其次,本申请通过生成模式查询语言,可以更加准确地匹配查询条件,提高了查询结果的精度和准确性,使得服务器能够快速准确地处理大量查询请求,提高了查询效率。进一步地,本实施例采用模式查询语句来执行查询操作,具有高度灵活性,使其能够适应不同类型的请求和查询条件,进而使得服务系统更具可扩展性和适应性。
请参照图7,本申请实施例提供了一种查询语句解析装置,该装置包括:
生成模块110,用于获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,所述请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;
选取模块120,用于从预设的多个解析算法中选取目标解析算法;
转换模块130,用于采用所述目标解析算法,将所述查询语句转换为可执行代码,并将所述可执行代码中的请求参数转换为请求计算式;
调用模块140,用于根据所述请求计算式并调用所述可执行代码,以获取目标请求值。
可以理解,上述的查询语句解析装置对应于上述实施例的查询语句解析方法;上述实施例中的任何可选项也适用于本实施例,这里不再详述。
本申请实施例还提供了一种计算机设备,该所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施上述实施例的查询语句解析方法。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据(比如请求计算式、目标请求值等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述实施例的查询语句解析方法的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种查询语句解析方法,其特征在于,包括:
获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,所述请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;
从预设的多个解析算法中选取目标解析算法;
采用所述目标解析算法,将所述查询语句转换为可执行代码,并将所述可执行代码中的请求参数转换为请求计算式;
根据所述请求计算式并调用所述可执行代码,以获取目标请求值。
2.根据权利要求1所述的查询语句解析方法,其特征在于,所述将所述可执行代码中的请求参数转换为请求计算式,包括:
采用预设的请求处理器类对所述可执行代码进行预设格式处理,以读取所述可执行代码中各个请求参数的基本信息;每个所述请求参数的基本信息包括操作符、函数名、参数;
将每个所述请求参数的基本信息中的各个元素按照预设的排列顺序进行组合,生成请求计算式。
3.根据权利要求1所述的查询语句解析方法,其特征在于,所述将所述查询语句转换为可执行代码,包括:
将所述查询语句按照预设的语法定义规则进行分词处理,得到多个标记字符;
将所有所述标记字符组合成第一语法树,并采用语法规则对所述第一语法树进行优化;
将优化后的所述第一语法树转换为可执行代码。
4.根据权利要求1所述的查询语句解析方法,其特征在于,所述获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句,包括:
根据用户输入的关键字,从预先定义的请求参数模式中匹配目标参数模式;
将所述关键字按照所述目标参数模式组合形成第二语法树;
根据所述第二语法树对应的语法规则,将所述第二语法树转换为待解析的查询语句。
5.根据权利要求1所述的查询语句解析方法,其特征在于,所述从预设的多个解析算法中选取目标解析算法,包括:
计算所述查询语句中的各个请求参数的数量和,以及计算所述查询语句的复杂度;
根据所述数量和以及所述复杂度,从多个解析算法中确定目标解析算法。
6.根据权利要求5所述的查询语句解析方法,其特征在于,所述根据所述数量和以及所述复杂度,从多个解析算法中确定目标解析算法,包括:
分别将所述数量和以及所述复杂度对应与预设层级进行匹配,得到目标层级;
按照预先设置的解析算法匹配规则,从多个解析算法中查找与所述目标层级适配的目标解析算法。
7.根据权利要求1所述的查询语句解析方法,其特征在于,所述根据所述请求计算式并调用所述可执行代码,以获取目标请求值,包括:
通过所述可执行代码运行所述请求计算式,从预设数据库中查找得到目标请求值;
向预设的请求处理器返回所述目标请求值;所述请求处理器用于向所述用户返回所述目标请求值。
8.一种查询语句解析装置,其特征在于,包括:
生成模块,用于获取用户输入的关键字,并基于预先定义的请求参数模式,生成待解析的查询语句;其中,所述请求参数模式用于描述待生成查询语句中的各个请求参数的基本信息;
选取模块,用于从预设的多个解析算法中选取目标解析算法;
转换模块,用于采用所述目标解析算法,将所述查询语句转换为可执行代码,并将所述可执行代码中的请求参数转换为请求计算式;
调用模块,用于根据所述请求计算式并调用所述可执行代码,以获取目标请求值。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器和至少一个处理器,所述存储器存储有计算机程序,所述处理器用于执行所述计算机程序以实施权利要求1-7中任一项所述的查询语句解析方法。
10.一种计算机存储介质,其特征在于,其存储有计算机程序,所述计算机程序被执行时,实施根据权利要求1-7中任一项所述的查询语句解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050581.5A CN117076727A (zh) | 2023-08-18 | 2023-08-18 | 一种查询语句解析方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311050581.5A CN117076727A (zh) | 2023-08-18 | 2023-08-18 | 一种查询语句解析方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117076727A true CN117076727A (zh) | 2023-11-17 |
Family
ID=88714747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311050581.5A Pending CN117076727A (zh) | 2023-08-18 | 2023-08-18 | 一种查询语句解析方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117076727A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667046A (zh) * | 2024-01-31 | 2024-03-08 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
-
2023
- 2023-08-18 CN CN202311050581.5A patent/CN117076727A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667046A (zh) * | 2024-01-31 | 2024-03-08 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
CN117667046B (zh) * | 2024-01-31 | 2024-04-12 | 英诺达(成都)电子科技有限公司 | 命令解析方法、装置、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200320093A1 (en) | Extensible Data Transformations | |
US9390176B2 (en) | System and method for recursively traversing the internet and other sources to identify, gather, curate, adjudicate, and qualify business identity and related data | |
US11809442B2 (en) | Facilitating data transformations | |
US11809223B2 (en) | Collecting and annotating transformation tools for use in generating transformation programs | |
US10776380B2 (en) | Efficient transformation program generation | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
Biswas et al. | Boa meets python: A boa dataset of data science software in python language | |
CN108984155B (zh) | 数据处理流程设定方法和装置 | |
Cruz et al. | A literature review and comparison of three feature location techniques using argouml-spl | |
US11163788B2 (en) | Generating and ranking transformation programs | |
Zhang et al. | Chatbot4qr: Interactive query refinement for technical question retrieval | |
US11176144B2 (en) | Source code search engine | |
CN112579610A (zh) | 多数据源结构分析方法、系统、终端设备及存储介质 | |
CN112035508A (zh) | 基于sql在线元数据解析的方法及系统、设备 | |
CN117076727A (zh) | 一种查询语句解析方法、装置、设备和存储介质 | |
CN112883030A (zh) | 数据收集方法、装置、计算机设备和存储介质 | |
CN110704472A (zh) | 数据查询统计方法及装置 | |
Iacob et al. | MARAM: tool support for mobile app review management. | |
US20230259359A1 (en) | Systems and method for automated code analysis and tagging | |
Aksoy et al. | MATAWS: A multimodal approach for automatic WS semantic annotation | |
EP4113289A1 (en) | Automated code analysis and tagging (methods and systems) | |
CN110618809B (zh) | 一种前端网页输入约束提取方法和装置 | |
Siers | Generating specifications for JSON APIs for formal and semantic use | |
Daly et al. | PADS: An end-to-end system for processing ad hoc data | |
Messaouda et al. | Refinement and reuse of ontologies semantic mapping |
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 |