数据查询方法和装置与流程

文档序号:12666224阅读:191来源:国知局
数据查询方法和装置与流程

本发明涉及计算机通讯技术领域,特别涉及数据查询方法和装置。



背景技术:

在属于大数据时代的当今,对于数据查询而言,通常利用基于Solr和Zookeeper的分布式搜索方案SolrCloud,所谓的Solr是高性能且基于Lucene的全文搜索服务器,所谓的Zookeeper是为分布式应用提供一致性服务的功能软件。

现有技术中,利用SolrCloud的数据查询系统中包括:节点服务器集群,其中,节点服务器集群中的各个节点服务器为Solr且存储有至少一个用于数据查询的数据索引,其中,数据索引为查询的基本单位;并且,在数据查询过程中,每一节点服务器均可以为作为接收数据查询请求的目标服务器。具体的,对于该利用SolrCloud的数据查询系统而言,具体的数据查询方法包括:当第一节点服务器接收到数据查询请求后,获得该数据查询请求所携带的查询条件信息以及n个索引标识,确定出n个索引标识各自所对应的第二节点服务器,分别构建每个索引标识所对应的查询子请求并发送至相应的第二节点服务器,其中,查询子请求携带有相应索引标识以及查询条件信息;而第二节点服务器在接收到查询子请求后,会对该查询子请求所携带的索引标识所对应的数据索引,按照查询条件信息进行查询,得到该查询子请求所对应的m条备用查询结果,并反馈给第一节点服务器;进而,第一节点服务器最终会得到n*m条备用查询结果,并对n*m条备用查询结果筛选处理,筛选得到数据查询请求所对应的m条查询结果。

尽管上述数据查询方法能够实现数据的精准查询,但是,由于每个索引标识均会对应一定数量的查询结果,第一节点服务器需要对所有索引标识所对应的查询结果进行筛选处理,因此,当查询的数据量达到一定规模后,第一节点服务器所需处理的数据量会相当大,这时查询性能就会明显下降,往往会导致 第一节点服务器的崩溃,进而导致节点服务器集群崩溃。



技术实现要素:

本发明实施例公开了数据查询方法和装置,可以有效分担接收到的数据查询请求的节点服务器的计算压力,提高节点服务器集群的性能和稳定性。具体技术方案如下:

第一方面,本发明实施例提供了一种数据查询方法,应用于第一节点服务器,所述第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,所述方法包括:

在获得数据查询请求后,解析得到所述数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息;

确定所述至少一个索引标识各自所对应的第二节点服务器,所述第二节点服务器为所述数据查询系统所包括节点服务器集群中的任一节点服务器;

分别为每个第二节点服务器构建对应的聚合请求,所述聚合请求携带有所述查询条件信息以及该第二节点服务器所对应的所有索引标识;

将所构建的聚合请求发送至相应的第二节点服务器,以使得第二节点服务器确定所述聚合请求所携带的所有索引标识各自所对应的数据索引,基于所述聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果,从所得到的初级查询结果中,筛选得到所述聚合请求所对应的备用查询结果,并将所述备用查询结果反馈给所述第一节点服务器;

接收所有第二节点服务器反馈的备用查询结果;

从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果。

较佳的,所述确定所述至少一个索引标识各自所对应的第二节点服务器,包括:

从预先存储的数据索引的索引标识与节点服务器的对应关系中,确定所述至少一个索引标识各自所对应的第二节点服务器。

较佳的,所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果,包括:

按照与所述查询条件信息对应的预设排序方式,对所接收到的所有第二节点服务器反馈的备用查询结果进行排序处理;

从排序处理所得的排序队列中,选择符合所述查询条件信息的部分备用查询结果;

将所选择得到的部分备用查询结果作为所述数据查询请求所对应的目标查询结果。

较佳的,在所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果之后,所述方法还包括:

向所述数据查询请求所对应的发出方返回所述目标查询结果。

较佳的,所述向所述数据查询请求所对应的发出方返回所述目标查询结果,包括:

以与所述查询条件信息对应的预设排序方式,向所述数据查询请求所对应的发出方返回所述目标查询结果。

第二方面,本发明实施例提供了一种数据查询方法,应用于第二节点服务器,所述第二节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,所述方法包括:

在接收到第一节点服务器发送的聚合请求后,确定所述聚合请求所携带的所有索引标识各自所对应的数据索引,所述聚合请求为第一节点服务器在获得携带有至少一个数据索引的索引标识和查询条件信息的数据查询请求后所构建并发送的,其中,所述聚合请求携带有查询条件信息以及所述第二节点服务器所对应的所有索引标识,所述第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器;

基于所述聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果;

从所得到的初级查询结果中,筛选得到所述聚合请求所对应的备用查询结果;

将所述备用查询结果反馈给所述第一节点服务器,以使得所述第一节点服务器从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果。

较佳的,所述从所得到的初级查询结果中,筛选得到所述聚合请求所对应的备用查询结果,包括:

按照与所述查询条件信息对应的预设排序方式,对所得到的初级查询结果进行排序处理;

从排序处理所得的排序队列中,选择符合所述查询条件信息的部分初级查询结果;

将所选择得到的部分初级查询结果作为向第一节点服务器反馈的备用查询结果。

第三方面,本发明实施例提供了一种数据查询装置,应用于第一节点服务器,所述第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,所述装置包括:

解析模块:用于在获得数据查询请求后,解析得到所述数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息;

确定模块:用于确定所述至少一个索引标识各自所对应的第二节点服务器,所述第二节点服务器为所述数据查询系统所包括节点服务器集群中的任一节点服务器;

聚合请求构建模块:用于分别为每个第二节点服务器构建对应的聚合请求,所述聚合请求携带有所述查询条件信息以及该第二节点服务器所对应的所有索引标识;

聚合请求发送模块:将所构建的聚合请求发送至相应的第二节点服务器,以使得第二节点服务器确定所述聚合请求所携带的所有索引标识各自所对应的 数据索引,基于所述聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果,从所得到的初级查询结果中,筛选得到所述聚合请求所对应的备用查询结果,并将所述备用查询结果反馈给所述第一节点服务器;

目标查询结果接收模块:用于接收所有第二节点服务器反馈的备用查询结果;

目标查询结果筛选确定模块:用于从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果。

较佳的,所述确定模块具体用于:

从预先存储的数据索引的索引标识与节点服务器的对应关系中,确定所述至少一个索引标识各自所对应的第二节点服务器。

较佳的,所述目标查询结果筛选模块包括:排序单元、筛选单元和目标查询结果确定单元;

所述排序单元:用于按照与所述查询条件信息对应的预设排序方式,对所接收到的所有第二节点服务器反馈的备用查询结果进行排序处理;

所述筛选单元:用于从排序处理所得的排序队列中,选择符合所述查询条件信息的部分备用查询结果;

所述目标查询结果确定单元:用于将所选择得到的部分备用查询结果作为所述数据查询请求所对应的目标查询结果。

较佳的,本发明实施例所提供的数据查询装置还包括目标查询结果返回模块;

所述目标查询结果返回模块:用于在所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果之后,向所述数据查询请求所对应的发出方返回所述目标查询结果。

较佳的,所述目标查询结果返回模块具体用于:

以与所述查询条件信息对应的预设排序方式,向所述数据查询请求所对应的发出方返回所述目标查询结果。

第四方面,本发明实施例提供了一种数据查询装置,应用于第二节点服务器,所述第二节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,所述装置包括:

数据索引确定模块:用于在接收到第一节点服务器发送聚合请求后,确定所述聚合请求所携带的所有索引标识各自所对应的数据索引,所述聚合请求为第一节点服务器在获得携带有至少一个数据索引的索引标识和查询条件信息的数据查询请求后所构建并发送的,其中,所述聚合请求携带有查询条件信息以及所述第二节点服务器所对应的所有索引标识,所述第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器;

初级查询结果确定模块:用于基于所述聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果;

备用查询结果筛选确定模块:用于从所得到的初级查询结果中,筛选得到所述聚合请求所对应的备用查询结果;

备用查询结果反馈模块:用于将所述备用查询结果反馈给所述第一节点服务器,以使得所述第一节点服务器从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果。

较佳的,所述备用查询结果筛选确定模块包括:排序处理单元、初级查询结果选择单元和备用查询结果确定单元;

所述排序处理单元:用于按照与所述查询条件信息对应的预设排序方式,对所得到的初级查询结果进行排序处理;

所述初级查询结果选择单元:用于从排序处理所得的排序队列中,选择符合所述查询条件信息的部分初级查询结果;

所述备用查询结果确定单元:用于将所选择得到的部分初级查询结果作为向第一节点服务器反馈的备用查询结果。

与现有技术相比,本方案中,对于每个第二节点服务器构建对应的聚合请求,该聚合请求包括相应第二节点服务器所对应的所有索引标识,而并非以独立的数据索引为单位构建数据查询子请求,这样使得第二节点服务器可以对所 查询到的至少一个数据索引所对应的查询结果进行汇总筛选,进而将数据量较少的汇总筛选结果发送给第一节点服务器,而第一节点服务器仅仅对数据量较少的汇总筛选结果进行再次汇总筛选即可,因此,实现了有效分担接收到的数据查询请求的节点服务器的计算压力,提高节点服务器集群的性能和稳定性的目的。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据查询方法的流程示意图;

图2为本发明实施例提供的获得目标查询结果的方法的流程示意图;

图3为本发明实施例提供的另一种数据查询方法的流程示意图;

图4为本发明实施例提供的一种数据查询装置的结构示意图;

图5为本发明实施例提供的另一种数据查询装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了有效分担接收到的数据查询请求的节点服务器的计算压力,提高节点服务器集群的性能和稳定性,本发明实施例提供了数据查询方法和装置。

第一方面,本发明实施例从接收到数据查询请求的第一节点服务器的角度,提供了一种数据查询方法。需要说明的是,本实施例所提供的一种 数据查询方法应用于第一节点服务器,该第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,即每一节点服务器均可以执行本实施例所提供的数据查询方法;并且,在实际应用中,该数据查询系统为利用分布式搜索方案SolrCloud的系统。

如图1所示,本实施例所提供的一种数据查询方法,可以包括如下步骤:

S101:在获得数据查询请求后,解析得到该数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息;

第一节点服务器在获得数据查询请求后,为了后续的数据查询,可以解析得到该数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息。其中,解析得到该数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息的具体实现方式可以采用现有技术,在此不做限定。

可以理解的是,实际应用中,该数据查询请求可以为用户基于查询界面所发出,也可以为在满足预定条件时第一节点服务器自动生成,等等,这都是合理的。

并且,该索引标识为唯一指代数据索引的信息,例如:该索引标识可以为数据索引的名称,或者,基于数据索引名称和内容所确定出的信息,等等;而该查询条件信息为现有的查询条件信息,其可以包括:待查询数据内容和作为查询参数的所需结果条数的结合,或者,待查询数据内容和作为查询参数的待查询数据内容所对应的查询范围的结合,等等。

S102:确定至少一个索引标识各自所对应的第二节点服务器;

由于数据索引分布存储于节点服务器中且每个节点服务器存储至少一个数据索引,因此,在解析得到该数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息后,可以确定至少一个索引标识各自所对应的第二节点服务器,其中,该第二节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器。

具体的,实际应用中,预先构建有数据索引的索引标识与节点服务器的对应关系,因此,所述确定至少一个索引标识各自所对应的第二节点服务器,可 以包括:

从预先存储的数据索引的索引标识与节点服务器的对应关系中,确定至少一个索引标识各自所对应的第二节点服务器。

需要说明的是,所述第一节点服务器中可能包含该至少一个数据索引中的索引标识所指代的数据索引,也可能不包含该至少一个数据索引中的索引标识所指代的数据索引;进一步的,当所述第一节点服务器中包含该至少一个数据索引中的索引标识所指代的数据索引时,第一节点服务器可以充当第二节点服务器的角色,完成第二节点服务器的工作。

举例而言,第一节点服务器获得数据查询请求A,解析得到该查询请求A所携带的数据索引的索引标识分别为a、b、c、d、e;并且,解析得到查询条件信息包括查询内容甲和查询参数start、row,其中,start为查询范围的起始点,row为以start为起始点之后的查询结果数量;从预先存储的数据索引的索引标识与节点服务器的对应关系中,得到索引标识与第二节点服务器的对应情况分别为:a对应第二节点服务器1,b、c、d对应第二节点服务器2,e对应第二节点服务器3,此时,其中,第二节点服务器1为接收到数据查询请求的第一节点服务器。

S103:分别为每个第二节点服务器构建对应的聚合请求,所述聚合请求携带有所述查询条件信息以及该第二节点服务器所对应的所有索引标识;

在确定至少一个索引标识各自所对应的第二节点服务器后,并非采用现有技术中的基于每个索引标识来构建查询子请求,而是,分别为每个第二节点服务器构建对应的聚合请求,该聚合请求携带有该查询条件信息以及该第二节点服务器所对应的所有索引标识。

举例而言:根据步骤S101和步骤S102,得到a对应第二节点服务器1,b、c、d对应第二节点服务器2,e对应第二节点服务器3,则为第一节点服务器1构建聚合请求1,为第二节点服务器2构建聚合请求2,为第二节点服务器3构建聚合请求3,其中,该聚合请求1携带有索引标识a和包括查询内容甲和查询参数的查询条件信息,该聚合请求2携带有索引标识b、c、d以及包括查询内容甲和查询参数的查询条件信息,该聚合请求3携带有索引标识e以及包括查询内容甲和查询参数的查询条件信息;其中,由于每个聚合请求携带有包括查 询内容甲和查询参数的查询条件信息,其中查询参数start和row,可以决定每个数据索引得到的查询结果个数,也可以决定第二节点服务器返回给第一节点服务器的查询结果个数,还可以决定第一节点服务器最终返回的查询结果个数。

S104:将所构建的聚合请求发送至相应的第二节点服务器,以使得第二节点服务器确定该聚合请求所携带的所有索引标识各自所对应的数据索引,基于该聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果,从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果,并将该备用查询结果反馈给该第一节点服务器;

在分别为每个第二节点服务器构建对应的聚合请求后,可以将所构建的聚合请求发送至相应的第二节点服务器,以使得第二节点服务器确定该聚合请求所携带的所有索引标识各自所对应的数据索引,基于该聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果,从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果,并将该备用查询结果反馈给该第一节点服务器。举例而言:将步骤S103构建的聚合请求1、2和3分别发送至第二节点服务器1、第二节点服务器2、第二节点服务器3,以使第二节点服务器1基于聚合请求1中的索引标识a、查询条件信息所包括的查询内容甲和查询参数start、row,筛选得到该聚合请求1所对应的备用查询结果,并将该备用查询结果反馈给该第一节点服务器,第二节点服务器2和第二节点服务器3类似,不再进行赘述。

具体的,从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果,并将该备用查询结果反馈给该第一节点服务器,可以包括:按照与该查询条件信息对应的预设排序方式,对所得到的初级查询结果进行排序处理;从排序处理所得的排序队列中,选择符合该查询条件信息的部分初级查询结果;将所选择得到的部分初级查询结果作为向第一节点服务器反馈的备用查询结果。其中,预设排序方式基于查询条件信息所确定,例如:按照相似度大小的排序,或,其他预定规则,等等;并且,基于查询条件信息来确定预设排序方式可以通过现有技术实现,在此不做赘述。

举例而言,对于查询参数start和row,每个数据索引都会得到[start+row]条初级查询结果,且每个聚合请求都要返回[start+row]条查询结果。

以第二节点服务器2为例,对应于第二节点服务器2的聚类请求2中携带有b、c、d三个索引标识,则可以知晓第二节点服务器2中存在对应b、c、d的三个数据索引,因为每个数据索引都要得到[start+row]条查询结果,则第二节点服务器2要得到3*[start+row]条初级查询结果,由于聚合请求表明需要向第一节点服务器反馈[start+row]条初级查询结果,因此,第二节点服务器2按照与该查询条件信息对应的预设排序方式,对初级查询结果进行排序处理,假设查询条件信息表明队列中前[start+row]条初级查询结果相对于其他初级查询结果更为符合要求,因此,选择该排序队列中前[start+row]条查询结果作为备用查询结果;当然,如果查询条件信息表明各条初级查询结果的地位均等,那么,可以该排序队列中随机选择[start+row]条初级查询结果作为备用查询结果。可见,本方案中,第二节点服务器2最终向第一节点服务器反馈[start+row]条初级查询结果,而并非现有技术中的反馈3*[start+row]条初级查询结果,大大减少了第一节点服务器所需处理的数据量。

S105:接收所有第二节点服务器反馈的备用查询结果;

S106:从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果。

其中,由于每个第二节点服务器均反馈了特定数量的备用查询结果,而数据查询请求所对应的目标查询结果仅仅为该特定数量,因此,在接收所有第二节点服务器反馈的备用查询结果后,可以通过一定方式,从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果。

具体的,所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果,如图2所示,可以包括如下步骤:

S201:按照与该查询条件信息对应的预设排序方式,对所接收到的所有第二节点服务器反馈的备用查询结果进行排序处理;

S202:从排序处理所得的排序队列中,选择符合该查询条件信息的部分备用查询结果;

S203:将所选择得到的部分备用查询结果作为该数据查询请求所对应的目 标查询结果。

其中,基于查询条件信息来确定预设排序方式的方式可以采用现有技术,并且,对于查询条件信息以确定的情况,符合该查询条件信息的部分备用查询结果也可以被确定。

举例而言:经过步骤S101到步骤S105,第一节点服务器(即第二节点服务器1),可以接收到第二节点服务器2反馈的[start+row]条备用查询结果、第二节点服务器3反馈的[start+row]条备用查询结果以及自身的[start+row]条备用查询结果,根据步骤S106,该第一节点服务器仅仅需要对3*[start+row]条备用查询结果进行二次汇总筛选即可,而并非现有技术中的对5*[start+row]条备用查询结果进行一次汇总筛选,大大减少了数据量。

更进一步的,在所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到所述数据查询请求所对应的目标查询结果之后,还可以向该数据查询请求所对应的发出方返回该目标查询结果。并且,为了较好的用户体验,可以以与该查询条件信息对应的预设排序方式,向该数据查询请求所对应的发出方返回该目标查询结果。

需要强调的,本方案对于查询数据请求所请求的索引标识较多、查询条件信息所对应的查询范围较广或查询条件信息所对应的查询结果条数较多的情况下,能够体现出的分担优势体现得更为明显。

与现有技术相比,本方案中,对于每个第二节点服务器构建对应的聚合请求,该聚合请求包括相应第二节点服务器所对应的所有索引标识,而并非以独立的数据索引为单位构建数据查询子请求,这样使得第二节点服务器可以对所查询到的至少一个数据索引所对应的查询结果进行汇总筛选,进而将数据量较少的汇总筛选结果发送给第一节点服务器,而第一节点服务器仅仅对数据量较少的汇总筛选结果进行再次汇总筛选即可,因此,实现了有效分担接收到的数据查询请求的节点服务器的计算压力,提高节点服务器集群的性能和稳定性的目的。

第二方面,本发明实施例从第二节点服务器的角度,提供了一种数据查询方法。

需要说明的是,本所提供的一种数据查询方法应用于第二节点服务器,该第二节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,即每一节点服务器均可以执行本实施例所提供的数据查询方法;并且,在实际应用中,该数据查询系统为利用分布式搜索方案SolrCloud的系统。

如图3所示,本实施例所提供的一种数据查询方法,可以包括如下步骤:

S301:在接收到第一节点服务器发送的聚合请求后,确定该聚合请求所携带的所有索引标识各自所对应的数据索引,该聚合请求为第一节点服务器在获得携带有至少一个数据索引的索引标识和查询条件信息的数据查询请求后所构建并发送的,其中,该聚合请求携带有查询条件信息以及该第二节点服务器所对应的所有索引标识,该第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器;

需要说明的是,第二节点服务器在接收到第一节点服务器发送的聚合请求后,会先处理该聚合请求,解析出该聚合请求中携带的所有索引标识以及查询条件信息,根据该所有索引标识,确定该聚合请求所携带的所有索引标识各自所对应的数据索引,再利用该所对应的数据索引根据该查询条件信息进行查询。其中,解析该聚合请求是可以采用现有技术,在此不再赘述。

举例而言,第二节点服务器1接收到第一节点服务器发送的聚合请求1后,解析该聚合请求1,得到3个索引标识,分别为A、B、C,得到的查询条件信息包括甲和和查询参数start、row。

其中,关于第一节点服务器构建聚合请求的具体过程可以参照上述从第一节点服务器角度所提供的数据查询方式中的相应描述内容,在此不做赘述。

S302:基于该聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果;

其中,可以通过现有技术来实现:基于该聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果。

S303:从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果;

具体的,从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果,可以包括:

按照与该查询条件信息对应的预设排序方式,对所得到的初级查询结果进行排序处理;

从排序处理所得的排序队列中,选择符合该查询条件信息的部分初级查询结果;

将所选择得到的部分初级查询结果作为向第一节点服务器反馈的备用查询结果。

其中,预设排序方式基于查询条件信息所确定,例如:按照相似度大小的排序,或,其他预定规则,等等;并且,基于查询条件信息来确定预设排序方式可以通过现有技术实现,在此不做赘述。

S304,将该备用查询结果反馈给该第一节点服务器,以使得该第一节点服务器从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果。

其中,第一节点服务器从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果的具体实现过程可以参照从第一节点服务器的角度所提供的数据查询方法的相应描述内容,在此不做赘述。

应用本发明实施例,第二节点服务器接收到第一节点服务器发送的聚合请求后,根据该聚合请求所携带的信息进行初级结果查询,不同于现有技术直接将该初级查询结果发送给该第一节点服务器,而是先在本地进行一次汇总筛选,将部分初级查询结果确定为备用查询结果,将该备用查询结果再反馈给该第一节点服务器,有效分担了第一节点服务器的结果查询压力。

第三方面,相应于上述从第一节点服务器的角度所提供的方法实施例,本发明实施例提供了一种数据查询装置,应用于第一节点服务器,该第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,如图4所示,该装置可以包括:

解析模块410:用于在获得数据查询请求后,解析得到该数据查询请求所携带的至少一个数据索引的索引标识和查询条件信息;

确定模块420:用于确定该至少一个索引标识各自所对应的第二节点服务器,该第二节点服务器为该数据查询系统所包括节点服务器集群中的任一节点服务器;

聚合请求构建模块430:用于分别为每个第二节点服务器构建对应的聚合请求,该聚合请求携带有所述查询条件信息以及该第二节点服务器所对应的所有索引标识;

聚合请求发送模块440:用于将所构建的聚合请求发送至相应的第二节点服务器,以使得第二节点服务器确定该聚合请求所携带的所有索引标识各自所对应的数据索引,基于该聚合请求所携带的所述查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果,从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果,并将该备用查询结果反馈给该第一节点服务器;

目标查询结果接收模块450:用于接收所有第二节点服务器反馈的备用查询结果;

目标查询结果筛选确定模块460:用于从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果。

与现有技术相比,本方案中,对于每个第二节点服务器构建对应的聚合请求,该聚合请求包括相应第二节点服务器所对应的所有索引标识,而并非以独立的数据索引为单位构建数据查询子请求,这样使得第二节点服务器可以对所查询到的至少一个数据索引所对应的查询结果进行汇总筛选,进而将数据量较少的汇总筛选结果发送给第一节点服务器,而第一节点服务器仅仅对数据量较少的汇总筛选结果进行再次汇总筛选即可,因此,实现了有效分担接收到的数据查询请求的节点服务器的计算压力,提高节点服务器集群的性能和稳定性的目的。

具体的,所述确定模块420具体用于:

从预先存储的数据索引的索引标识与节点服务器的对应关系中,确定该至 少一个索引标识各自所对应的第二节点服务器。

具体的,所述目标查询结果筛选模块460可以包括:排序单元、筛选单元和目标查询结果确定单元;

该排序单元:用于按照与该查询条件信息对应的预设排序方式,对所接收到的所有第二节点服务器反馈的备用查询结果进行排序处理;

该筛选单元:用于从排序处理所得的排序队列中,选择符合该查询条件信息的部分备用查询结果;

该目标查询结果确定单元:用于将所选择得到的部分备用查询结果作为该数据查询请求所对应的目标查询结果。

更进一步,本发明实施例所提供的数据查询系统还可以包括目标查询结果返回模块;

该目标查询结果返回模块:用于在所述从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果之后,向该数据查询请求所对应的发出方返回所述目标查询结果。

具体的,该目标查询结果返回模块具体用于:

以与该查询条件信息对应的预设排序方式,向该数据查询请求所对应的发出方返回该目标查询结果。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

第四方面,相应于上述从第二节点服务器的角度所提供的方法实施例,本发明实施例提供了一种数据查询装置,应用于第二节点服务器,该第二节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器,如图5所示,该装置可以包括:

数据索引确定模块510:用于在接收到第一节点服务器发送聚合请求后,确定该聚合请求所携带的所有索引标识各自所对应的数据索引,该聚合请求为第一节点服务器在获得携带有至少一个数据索引的索引标识和查询条件信息的数 据查询请求后所构建并发送的,其中,该聚合请求携带有查询条件信息以及所述第二节点服务器所对应的所有索引标识,该第一节点服务器为数据查询系统所包括节点服务器集群中的任一节点服务器;

初级查询结果确定模块520:用于基于该聚合请求所携带的该查询条件信息,对所确定出的各个数据索引执行查询操作,得到初级查询结果;

备用查询结果筛选确定模块530:用于从所得到的初级查询结果中,筛选得到该聚合请求所对应的备用查询结果;

备用查询结果反馈模块540:用于将该备用查询结果反馈给该第一节点服务器,以使得该第一节点服务器从所接收到的所有第二节点服务器反馈的备用查询结果中,筛选得到该数据查询请求所对应的目标查询结果。

应用本发明实施例,第二节点服务器接收到第一节点服务器发送的聚合请求后,根据该聚合请求所携带的信息进行初级结果查询,不同于现有技术直接将该初级查询结果发送给该第一节点服务器,而是先在本地进行一次汇总筛选,将部分初级查询结果确定为备用查询结果,将该备用查询结果再反馈给该第一节点服务器,有效分担了第一节点服务器的结果查询压力。

更进一步的,所述备用查询结果筛选确定模块530可以包括:排序处理单元、初级查询结果选择单元和备用查询结果确定单元;

该排序处理单元:用于按照与该查询条件信息对应的预设排序方式,对所得到的初级查询结果进行排序处理;

该初级查询结果选择单元:用于从排序处理所得的排序队列中,选择符合该查询条件信息的部分初级查询结果;

该备用查询结果确定单元:用于将所选择得到的部分初级查询结果作为向第一节点服务器反馈的备用查询结果。

对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1