CN111046060B - 一种基于Elasticsearch的数据检索方法、装置、设备、介质 - Google Patents
一种基于Elasticsearch的数据检索方法、装置、设备、介质 Download PDFInfo
- Publication number
- CN111046060B CN111046060B CN201911268097.3A CN201911268097A CN111046060B CN 111046060 B CN111046060 B CN 111046060B CN 201911268097 A CN201911268097 A CN 201911268097A CN 111046060 B CN111046060 B CN 111046060B
- Authority
- CN
- China
- Prior art keywords
- search
- grammar
- custom
- data
- target
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种基于Elasticsearch的数据检索方法、装置、设备、介质,该方法包括:对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;利用RestClient与Elasticsearch建立检索连接;将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。这样能够使得查询语法容易使用,便于检索,且提高了检索效率。
Description
技术领域
本申请涉及数据查询技术领域,特别涉及一种基于Elasticsearch的数据检索方法、装置、设备、介质。
背景技术
Elasticsearch是一个开源的基于Lucene的搜索服务器,能够完成实时、稳定、快速、可靠的搜索。在使用Elasticsearch进行数据搜索时,需要使用Elasticsearch的DSL(domain-specific language,领域特定语言),或者使用Kibana查询语法进行查询,而这对于大多用户来说都太过于专业,不易使用,在对专业查询语法不熟悉时,利用专业语法进行检索的效率很低,而Elasticsearch检索时用到的条件逻辑非常简单的,花费大量时间学习Elasticsearch的DSL,降低了检索效率。
发明内容
有鉴于此,本申请的目的在于提供一种基于Elasticsearch的数据检索方法、装置、设备、介质,能够使得查询语法容易使用,便于检索,且提高了检索效率。其具体方案如下:
第一方面,本申请公开了一种基于Elasticsearch的数据检索方法,包括:
对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;
利用RestClient与Elasticsearch建立检索连接;
将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;
接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。
可选的,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理之前,还包括:
获取所述自定义符号;
将获取到的所述自定义符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行对应绑定,得到所述自定义语法。
可选的,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到检索路径,包括:
从获取到的根据自定义语法拼接成的自定义查询语句中获取数据源索引;
将“所述数据源索引”+“/_search”确定为检索路径。
可选的,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句,包括:
将所述自定义查询语句拆分为目标“字符-运算符-值”数据组和目标“逻辑语法”组;
根据所述自定义语法,将所述目标“字符-运算符-值”数据组转化成Elasticsearch filter查询语句;
根据所述自定义语法,将所述目标“逻辑语法”组转换成所述Elasticsearch查询逻辑语法;
利用所述Elasticsearch查询逻辑语法拼接所述Elasticsearch filter查询语句,得到目标Elasticsearch DSL查询语句。
可选的,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到检索方式,包括:
根据所述目标Elasticsearch DSL查询语句,确定出检索方式。
可选的,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理的过程中,还包括:
检测所述自定义查询语句是否正确;
若所述自定义查询语句不正确,则显示相应的提示信息。
可选的,所述将所述目标数据转化为标准输出数据,以便输出所述目标数据,包括:
利用预设函数将所述目标数据转化为标准输出数据,以便输出所述目标数据。
第二方面,本申请公开了一种基于Elasticsearch的数据检索装置,包括:
查询语句处理模块,用于对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;
连接建立模块,用于利用RestClient与Elasticsearch建立检索连接;
数据发送模块,用于将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;
数据接收模块,用于接收所述目标数据;
数据转化模块,用于将所述目标数据转化为标准输出数据,以便输出所述目标数据。
第三方面,本申请公开了一种基于Elasticsearch的数据检索设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的基于Elasticsearch的数据检索方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的基于Elasticsearch的数据检索方法。
可见,本申请先对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;再利用RestClient与Elasticsearch建立检索连接;然后将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接着接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。这样使用自定义语法拼接成的查询语句进行数据检索,能够使得查询语法容易使用,便于检索,且提高了检索效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于Elasticsearch的数据检索方法流程图;
图2为本申请公开的一种具体的基于Elasticsearch的数据检索方法流程图;
图3为本申请公开的一种基于Elasticsearch的数据检索装置结构示意图;
图4为本申请公开的一种基于Elasticsearch的数据检索设备结构图;
图5是本申请公开的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,在使用Elasticsearch进行数据搜索时,需要使用Elasticsearch的DSL(domain-specific language,领域特定语言),或者使用Kibana查询语法进行查询,而这对于大多用户来说都太过于专业,不易使用,在对专业查询语法不熟悉时,利用专业语法进行检索的效率很低,而Elasticsearch检索时用到的条件逻辑非常简单的,花费大量时间学习Elasticsearch的DSL,降低了检索效率。有鉴于此,本申请提出了一种基于Elasticsearch的数据检索方法,能够使得查询语法容易使用,便于检索,且提高了检索效率。
参见图1所示,本申请实施例公开了一种基于Elasticsearch的数据检索方法,该方法包括:
步骤S11:对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法。
本实施例中,在获取到根据自定义语法拼接的自定义查询语句之后,需要对所述自定义查询语句进行相关的预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径。所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号进行绑定得到的语法。在所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理之前,还包括:获取所述自定义语法。在所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理的过程中,还包括:检测所述自定义查询语句是否正确;若所述自定义查询语句不正确,则显示相应的提示信息。具体的,所述提示信息包括但不限于可视化的文字提示信息和语言提示信息。
步骤S12:利用RestClient与Elasticsearch建立检索连接。
本实施例中,所述RestClient是一种开源组件,允许通过HTTP与Elasticsearch进行通信,所述RestClient利用应用层HTTP调用传输层tcp,用完便可关闭,是短链接,可大大降低系统开销,以提高系统性能。在得到所述目标Elasticsearch DSL查询语句、检索方式以及检索路径之后,需要利用RestClient与Elasticsearch建立检索连接,以便进行相应的数据传输。
步骤S13:将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标ElasticsearchDSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据。
可以理解的是,在与所述Elasticsearch建立检索连接之后,还需要将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据。所述Elasticsearch接收到所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径之后,会按照所述检索路径以及所述检索方式检索符合所述目标Elasticsearch DSL查询语句的数据,并返回检索到的目标数据。
步骤S14:接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。
可以理解的是,在所述Elasticsearch返回所述目标数据之后,还需要接收所述目标数据,并将所述目标数据转换成标准输出数据,以便输出所述目标数据。
可见,本申请先对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;再利用RestClient与Elasticsearch建立检索连接;然后将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接着接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。这样使用自定义语法拼接成的查询语句进行数据检索,能够使得查询语法容易使用,便于检索,且提高了检索效率。
参见图2所示,本申请实施例公开了一种具体的基于Elasticsearch的数据检索方法,该方法包括:
步骤S201:获取自定义符号。
在具体的实施过程中,可以获取用户输入的自定义符号,以便对用户输入的自定义符号进行相应的绑定,这样可以增加用户对查询语句的熟悉程度,提高检索效率。
步骤S202:将获取到的所述自定义符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行对应绑定,得到所述自定义语法。
本实施例中,在获取到所述自定义符号之后,还需要将所述自定义符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行对应绑定,得到所述自定义语法。例如,将Elasticsearch查询逻辑语法“与、或、并列”分别与获取到的自定义符号“+、-、()”进行绑定,Elasticsearch查询运算语法“等于、不等于、大于、大于等于、小于、小于等于、存在、不存在、属于、不属于”分别与获取到的自定义符号“=、!=、>、>=、<、<=、~、!~、[]、![]”进行绑定,再将“索引名/_search”与“from索引名”绑定,得到自定义语法,其中,所述索引名表征数据源索引,也即表征检索路径。
步骤S203:从获取到的根据所述自定义语法拼接成的自定义查询语句中获取数据源索引。
在具体的实施过程中,获取到根据所述自定义语法拼接成的自定义查询语句之后,需要从所述自定义查询语句中获取数据源索引。在拼接所述自定义查询语句的过程中,需要指明要检索的数据源,并将数据源索引写入所述自定义查询语句中。在获取到所述自定义查询语句之后,需要从所述自定义查询语句中获取所述数据源索引。
步骤S204:将“所述数据源索引”+“/_search”确定为检索路径。
在具体的实施过程中,在获取到所述数据源索引之后,将“所述数据源索引”+“/_search”确定为检索路径。
步骤S205:将所述自定义查询语句拆分为目标“字符-运算符-值”数据组和目标“逻辑语法”组。
本实施例中,还需要将所述自定义查询语句拆分为目标“字符-运算符-值”数据组以及“逻辑语法”组。例如,获取到的自定义查询语句为“(gender=“male”+age>10)-(gender=“female”+age<=20)“。将所述自定义查询语句为目标“字符-运算符-值”数据组:gender=“male”、age>10、gender=“female”、age<=20;目标“逻辑语法”组:(、+、)、-、(、+、)。
步骤S206:根据所述自定义语法,将所述目标“字符-运算符-值”数据组转化成Elasticsearch filter查询语句。
在具体的实施过程中,还需要根据所述自定义语法,将所述目标“字符-运算符-值”数据组转化成Elasticsearch filter查询语句。通过所述Elasticsearch filter查询语句进行的查询为过滤上下文,在查询的过程中,只需要检查数据是否符合查询语句要求,相比之下Query DSL查询语句不仅需要检查语句是否符合查询语句,还需要计算相应的相关度,因此,将所述目标“字符-运算符-值”数据组转化成Elasticsearch filter查询语句可以提高检索效率。例如,将所述自定义查询语句为目标“字符-运算符-值”数据组:gender=“male”、age>10、gender=“female”、age<=20,转换成Elasticsearch filter查询语句的结果如下所示:
步骤S207:根据所述自定义语法,将所述目标“逻辑语法”组转换成所述Elasticsearch查询逻辑语法。
在具体的实施过程中,还需要根据所述自定义语法,将所述目标“逻辑语法”组转换成所述Elasticsearch查询逻辑语法。例如,目标“逻辑语法”组:(、+、)、-、(、+、),转换成“并列、与、或、并列、与”。
步骤S208:利用所述Elasticsearch查询逻辑语法拼接所述Elasticsearchfilter查询语句,得到目标Elasticsearch DSL查询语句。
可以理解的是,在将所述目标“逻辑语法”组转化成所述Elasticsearch查询逻辑语法后,还需要利用所述Elasticsearch查询逻辑语法拼接所述Elasticsearch filter查询语句,得到目标Elasticsearch DSL查询语句。例如,对前述转换成的Elasticsearchfilter查询语句,进行拼接,得到的目标Elasticsearch DSL查询语句如下所示:
{"size":100,"timeout":"300000ms","query":{"bool":{"filter":[{"bool":{"should":[{"bool":{"filter":[{"term":{"gender":{"value":"male","boost":1.0}}},{"range":{"age":{"from":10,"to":null,"include_lower":false,"include_upper":true,"boost":1.0}}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}},{"bool":{"filter":[{"term":{"gender":{"value":"female","boost":1.0}}},{"range":{"age":{"from":null,"to":20,"include_lower":true,"include_upper":true,"boost":1.0}}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}],"disable_coord":false,"adjust_pure_negative":true,"boost":1.0}}}
步骤S209:根据所述目标Elasticsearch DSL查询语句,确定出检索方式。
可以理解的是,将所述目标“字符-运算符-值”数据组转化成Elasticsearchfilter查询语句之后,所述目标Elasticsearch DSL查询语句对应的查询方式便为filterDSL,也即过滤上下文。
步骤S210:利用RestClient与Elasticsearch建立检索连接。
步骤S211:将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标ElasticsearchDSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据。
可以理解的是,在与所述Elasticsearch建立检索连接之后,需要将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据。例如,前述的自定义查询语句进行检索之后,得到的目标数据如下所示:
{"took":0,"timed_out":false,"_shards":{"total":4,"successful":4,"skipped":0,"failed":0},"hits":{"total":2,"max_score":0,"hits":[{"_index":"test","_type":"test","_id":"1","_score":0,"_source":{"gender":"male","age":11}},{"_index":"test","_type":"test","_id":"2","_score":0,"_source":{"gender":"female","age":19}}]}}
步骤S212:接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。
在具体的实施过程中,接收到所述目标数据之后,还需要将所述目标数据转化为标准输出数据,以便输出所述目标数据。具体的,可以利用预设函数将所述目标数据转化为标准输出数据,以便输出所述目标数据。
此外,在具体的实施过程中,如果没有获取到用户输入的自定义符号,则可直接调用默认的自定义语法,对获取到的根据所述默认的自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径。其中,所述默认的自定义语法为预先保存在系统中的自定义语法。所述默认自定义语法通常为将惯用且易用性强的符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行绑定的自定义语法。例如,将自定义符号“>”与Elasticsearch查询运算语法中的“大于”绑定。
参见图3所示,本申请实施例公开了一种基于Elasticsearch的数据检索装置,包括:
查询语句处理模块11,用于对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;
连接建立模块12,用于利用RestClient与Elasticsearch建立检索连接;
数据发送模块13,用于将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;
数据接收模块14,用于接收所述目标数据;
数据转化模块15,用于将所述目标数据转化为标准输出数据,以便输出所述目标数据。
可见,本申请先对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;再利用RestClient与Elasticsearch建立检索连接;然后将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接着接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。这样使用自定义语法拼接成的查询语句进行数据检索,能够使得查询语法容易使用,便于检索,且提高了检索效率。
进一步的,参见图4所示,本申请实施例还公开了一种基于Elasticsearch的数据检索设备,包括:处理器21和存储器22。
其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的基于Elasticsearch的数据检索方法。
其中,关于上述基于Elasticsearch的数据检索方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
图5是根据一示例性实施例示出的一种电子设备20的框图。该电子设备20包括前述实施例中的处理器21和存储器22。该电子设备20还可以包括多媒体组件23,输入/输出(I/O)接口24,以及通信组件25中的一者或多者。
其中,处理器21用于控制该电子设备20的整体操作,以完成上述的基于Elasticsearch的数据检索方法中的全部或部分步骤。存储器22用于存储各种类型的数据以支持在该电子设备20的操作,这些数据例如可以包括用于在该电子设备20上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件23可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器22或通过通信组件25发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口24为处理器21和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件25用于该电子设备20与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件25可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备20可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的基于Elasticsearch的数据检索方法。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下步骤:
对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;利用RestClient与Elasticsearch建立检索连接;将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。
可见,本申请先对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;再利用RestClient与Elasticsearch建立检索连接;然后将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;接着接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。这样使用自定义语法拼接成的查询语句进行数据检索,能够使得查询语法容易使用,便于检索,且提高了检索效率。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:获取所述自定义符号;将获取到的所述自定义符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行对应绑定,得到所述自定义语法。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:从获取到的根据自定义语法拼接成的自定义查询语句中获取数据源索引;将“所述数据源索引”+“/_search”确定为检索路径。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:将所述自定义查询语句拆分为目标“字符-运算符-值”数据组和目标“逻辑语法”组;根据所述自定义语法,将所述目标“字符-运算符-值”数据组转化成Elasticsearch filter查询语句;根据所述自定义语法,将所述目标“逻辑语法”组转换成所述Elasticsearch查询逻辑语法;利用所述Elasticsearch查询逻辑语法拼接所述Elasticsearch filter查询语句,得到目标Elasticsearch DSL查询语句。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:根据所述目标Elasticsearch DSL查询语句,确定出检索方式。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:检测所述自定义查询语句是否正确;若所述自定义查询语句不正确,则显示相应的提示信息。
本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:利用预设函数将所述目标数据转化为标准输出数据,以便输出所述目标数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种基于Elasticsearch的数据检索方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于Elasticsearch的数据检索方法,其特征在于,包括:
对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;
利用RestClient与Elasticsearch建立检索连接;
将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;
接收所述目标数据,并将所述目标数据转化为标准输出数据,以便输出所述目标数据。
2.根据权利要求1所述的基于Elasticsearch的数据检索方法,其特征在于,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理之前,还包括:
获取所述自定义符号;
将获取到的所述自定义符号与所述Elasticsearch查询逻辑语法以及所述Elasticsearch查询运算语法进行对应绑定,得到所述自定义语法。
3.根据权利要求2所述的基于Elasticsearch的数据检索方法,其特征在于,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到检索路径,包括:
从获取到的根据自定义语法拼接成的自定义查询语句中获取数据源索引;
将“所述数据源索引”+“/_search”确定为检索路径。
4.根据权利要求3所述的基于Elasticsearch的数据检索方法,其特征在于,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标ElasticsearchDSL查询语句,包括:
将所述自定义查询语句拆分为目标“字符-运算符-值”数据组和目标“逻辑语法”组;
根据所述自定义语法,将所述目标“字符-运算符-值”数据组转化成Elasticsearchfilter查询语句;
根据所述自定义语法,将所述目标“逻辑语法”组转换成所述Elasticsearch查询逻辑语法;
利用所述Elasticsearch查询逻辑语法拼接所述Elasticsearch filter查询语句,得到目标Elasticsearch DSL查询语句。
5.根据权利要求4所述的基于Elasticsearch的数据检索方法,其特征在于,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到检索方式,包括:
根据所述目标Elasticsearch DSL查询语句,确定出检索方式。
6.根据权利要求5所述的基于Elasticsearch的数据检索方法,其特征在于,所述对获取到的根据自定义语法拼接成的自定义查询语句进行预处理的过程中,还包括:
检测所述自定义查询语句是否正确;
若所述自定义查询语句不正确,则显示相应的提示信息。
7.根据权利要求1至6任一项所述的基于Elasticsearch的数据检索方法,其特征在于,所述将所述目标数据转化为标准输出数据,以便输出所述目标数据,包括:
利用预设函数将所述目标数据转化为标准输出数据,以便输出所述目标数据。
8.一种基于Elasticsearch的数据检索装置,其特征在于,包括:
查询语句处理模块,用于对获取到的根据自定义语法拼接成的自定义查询语句进行预处理,得到目标Elasticsearch DSL查询语句、检索方式以及检索路径,其中,所述自定义语法为将Elasticsearch查询逻辑语法以及Elasticsearch查询运算语法与自定义符号绑定得到的语法;
连接建立模块,用于利用RestClient与Elasticsearch建立检索连接;
数据发送模块,用于将所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径发送给所述Elasticsearch,以便所述Elasticsearch根据所述目标Elasticsearch DSL查询语句、所述检索方式以及所述检索路径进行数据检索,并返回检索到的目标数据;
数据接收模块,用于接收所述目标数据;
数据转化模块,用于将所述目标数据转化为标准输出数据,以便输出所述目标数据。
9.一种基于Elasticsearch的数据检索设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的基于Elasticsearch的数据检索方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于Elasticsearch的数据检索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268097.3A CN111046060B (zh) | 2019-12-11 | 2019-12-11 | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911268097.3A CN111046060B (zh) | 2019-12-11 | 2019-12-11 | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111046060A CN111046060A (zh) | 2020-04-21 |
CN111046060B true CN111046060B (zh) | 2023-04-25 |
Family
ID=70235723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911268097.3A Active CN111046060B (zh) | 2019-12-11 | 2019-12-11 | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111046060B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110020006B (zh) * | 2017-07-27 | 2021-04-27 | 北京国双科技有限公司 | 查询语句的生成方法及相关设备 |
CN111797111A (zh) * | 2020-05-17 | 2020-10-20 | 冠群信息技术(南京)有限公司 | 一种基于es搜索引擎的动态组合查询方法 |
CN112015771B (zh) * | 2020-10-15 | 2021-06-29 | 北京新唐思创教育科技有限公司 | 数据检索方法、装置、电子设备及计算机存储介质 |
CN114595246B (zh) * | 2022-05-09 | 2022-08-02 | 苏州万店掌网络科技有限公司 | 一种语句生成方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325856A (zh) * | 2016-08-10 | 2017-01-11 | 杭州玳数科技有限公司 | 一种实现Elasticsearch Dsl规则可视化编辑和数据展现的方法与系统 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN107122418A (zh) * | 2017-03-31 | 2017-09-01 | 北京奇艺世纪科技有限公司 | 一种查询方法及装置 |
CN108009296A (zh) * | 2017-12-27 | 2018-05-08 | 北京中关村科金技术有限公司 | 一种基于Hbase的SQL查询方法、系统及相关装置 |
CN109145009A (zh) * | 2018-08-19 | 2019-01-04 | 杭州安恒信息技术股份有限公司 | 一种基于SQL检索ElasticSearch的方法 |
CN110020072A (zh) * | 2017-09-30 | 2019-07-16 | 北京国双科技有限公司 | 一种基于Elasticsearch的数据处理方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11188531B2 (en) * | 2018-02-27 | 2021-11-30 | Elasticsearch B.V. | Systems and methods for converting and resolving structured queries as search queries |
-
2019
- 2019-12-11 CN CN201911268097.3A patent/CN111046060B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325856A (zh) * | 2016-08-10 | 2017-01-11 | 杭州玳数科技有限公司 | 一种实现Elasticsearch Dsl规则可视化编辑和数据展现的方法与系统 |
CN106528797A (zh) * | 2016-11-10 | 2017-03-22 | 上海轻维软件有限公司 | 基于Elasticsearch的DSL查询方法 |
CN106649630A (zh) * | 2016-12-07 | 2017-05-10 | 乐视控股(北京)有限公司 | 数据查询方法及装置 |
CN107122418A (zh) * | 2017-03-31 | 2017-09-01 | 北京奇艺世纪科技有限公司 | 一种查询方法及装置 |
CN110020072A (zh) * | 2017-09-30 | 2019-07-16 | 北京国双科技有限公司 | 一种基于Elasticsearch的数据处理方法及终端 |
CN108009296A (zh) * | 2017-12-27 | 2018-05-08 | 北京中关村科金技术有限公司 | 一种基于Hbase的SQL查询方法、系统及相关装置 |
CN109145009A (zh) * | 2018-08-19 | 2019-01-04 | 杭州安恒信息技术股份有限公司 | 一种基于SQL检索ElasticSearch的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111046060A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111046060B (zh) | 一种基于Elasticsearch的数据检索方法、装置、设备、介质 | |
AU2015210460B2 (en) | Speech recognition repair using contextual information | |
US10210245B2 (en) | Natural language question answering method and apparatus | |
US10515154B2 (en) | Systems and methods for natural language processing using machine-oriented inference rules | |
CN112287670A (zh) | 文本纠错方法、系统、计算机设备及可读存储介质 | |
CN111223498A (zh) | 情绪智能识别方法、装置及计算机可读存储介质 | |
US20080162528A1 (en) | Content Management System and Method | |
CN110415679B (zh) | 语音纠错方法、装置、设备和存储介质 | |
US9984050B2 (en) | Ground truth collection via browser for passage-question pairings | |
US20200327886A1 (en) | Method for creating a knowledge base of components and their problems from short text utterances | |
CN116483973A (zh) | 一种文本处理方法、装置以及相关设备 | |
US10474747B2 (en) | Adjusting time dependent terminology in a question and answer system | |
CN111178076B (zh) | 命名实体识别与链接方法、装置、设备及可读存储介质 | |
US20190095447A1 (en) | Method, apparatus, device and storage medium for establishing error correction model based on error correction platform | |
KR20210094445A (ko) | 정보 처리 방법, 장치 및 저장 매체 | |
CN114556328A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
WO2017161749A1 (zh) | 一种信息匹配方法及装置 | |
KR20160029587A (ko) | 단위 또는 약어의 풀네임 음성출력 방법 및 장치 | |
JP6625772B2 (ja) | 検索方法及びそれを用いた電子機器 | |
KR20200014047A (ko) | 시맨틱 트리플 기반의 지식 확장 시스템, 방법 및 컴퓨터 프로그램 | |
CN110795541A (zh) | 文本查询方法、装置、电子设备及计算机可读存储介质 | |
US20180067927A1 (en) | Customized Translation Comprehension | |
CN112182255A (zh) | 用于存储媒体文件和用于检索媒体文件的方法和装置 | |
CN111209746B (zh) | 自然语言处理方法、装置、存储介质及电子设备 | |
CN110020429B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |