分组查询方法、装置、电子设备及可读存储介质转让专利

申请号 : CN201910872156.1

文献号 : CN110781258B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹元谢奕斐

申请人 : 北京三快在线科技有限公司

摘要 :

本公开的实施例提供了一种分组查询方法、装置、电子设备及可读存储介质,所述方法包括:从预设维度信息中选取目标维度信息,并按照目标维度信息将预设对象集划分为一个或多个对象子集;若其中一个对象子集的数据量大于预设数据量阈值,则从维度信息中重新选取新的目标维度信息,并将对象子集作为新的预设对象集,以继续划分;若其中一个对象子集的数据量小于或等于数据量阈值,则生成对象子集的分组标识;根据对象子集的分组标识存储预设对象集的对象信息;根据对象子集对应的分组标识查询存储的对象信息。可以将预设对象集划分为数据量小于数据量阈值的对象子集,以保证存储的均匀性,有助于提高查询性能。

权利要求 :

1.一种分组查询方法,其特征在于,所述方法包括:从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预设区域范围内;

若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述按照所述目标维度信息将预设对象集划分为一个或多个对象子集的步骤;所述新的目标维度信息与所述目标维度信息不同;

若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;

根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;

根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理;

所述从所述维度信息中选取新的目标维度信息的步骤,包括:确定预设对象在预设维度信息上的方差;

根据所述方差从预设维度信息中选取新的目标维度信息。

2.根据权利要求1所述的方法,其特征在于,所述按照所述目标维度信息将预设对象集划分为一个或多个对象子集的步骤,包括:根据预设对象在目标维度信息上的中位数,将预设对象集划分为两个对象子集。

3.根据权利要求1至2其中任一项所述的方法,其特征在于,在所述生成所述对象子集对应的分组标识的步骤之后,所述方法还包括:记录所述对象子集中的每个对象与所述分组标识之间的映射关系,得到第一映射关系。

4.根据权利要求3所述的方法,其特征在于,所述根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储的步骤,包括:针对每个分组标识,根据所述第一映射关系,将所述分组标识对应的所述对象子集中的每个对象的对象信息存储至同一存储块。

5.根据权利要求4所述的方法,其特征在于,在所述针对每个分组标识,根据所述第一映射关系,将所述分组标识对应的所述对象子集中的每个对象的对象信息存储至同一存储块的步骤之后,所述方法还包括:记录所述对象子集的分组标识与所述存储块之间的映射关系,得到第二映射关系。

6.根据权利要求5所述的方法,其特征在于,所述根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理的步骤,包括:响应于对目标对象集的查询请求,根据所述第一映射关系将所述目标对象集划分为目标分组标识对应的目标对象子集;

根据所述第二映射关系确定所述目标分组标识对应的目标存储块;

从所述目标存储块中读取对象信息得到候选对象信息,并从所述候选对象信息中筛选出所述目标对象子集的对象信息。

7.一种分组查询装置,其特征在于,所述装置包括:预设对象集拆分模块,用于从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预设区域范围内;

循环模块,用于若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述预设对象集拆分模块;所述新的目标维度信息与所述目标维度信息不同;

分组标识生成模块,用于若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;

存储模块,用于根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;

查询处理模块,用于根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理;

所述循环模块,包括:

方差确定子模块,用于确定预设对象在预设维度信息上的方差;

目标维度信息选取子模块,用于根据所述方差从预设维度信息中选取新的目标维度信息。

8.一种电子设备,其特征在于,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1‑6中一个或多个所述的分组查询方法。

9.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如方法权利要求1‑6中一个或多个所述的分组查询方法。

说明书 :

分组查询方法、装置、电子设备及可读存储介质

技术领域

[0001] 本公开的实施例涉及数据存储技术领域,尤其涉及一种分组查询方法、装置、电子设备及可读存储介质。

背景技术

[0002] 数据通常可以以分组的形式存储,在基于位置的服务系统中,可以按照位置将距离相近的对象,例如商家,划分至同一分组存储。从而,在读取对象时,可以一次性读取距离
相近的一批对象,降低与存储器的交互次数,提高了系统性能。
[0003] 现有技术中,可以通过geohash编码的方式存储。具体包括:首先,将整个区域划分为若干子区域;然后,将对象按照位置划分至其中一个子区域中;最后,对该区域进行
geohash编码得到geohash块,从而使得属于该区域的对象拥有相同geohash编码,存储至同
一geohash块中。
[0004] 发明人对上述方案进行研究之后发现,在对象的位置分布不均匀时,会导致部分geohash块的存储量很大,而部分geohash块的存储量很小,降低查询性能。

发明内容

[0005] 本公开的实施例提供一种分组查询方法、装置、电子设备及可读存储介质,可以在对象子集的数据量大于数据量阈值时,将对象子集进一步划分直至对象子集的数据量小于
数据量阈值,可以保证存储的均匀性,有助于提高查询性能。
[0006] 根据本公开的实施例的第一方面,提供了一种分组查询方法,所述方法包括:
[0007] 从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预设区域范
围内;
[0008] 若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述按照所述目标
维度信息将预设对象集划分为一个或多个对象子集的步骤;
[0009] 若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;
[0010] 根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;
[0011] 根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理。
[0012] 根据本公开的实施例的第二方面,提供了一种分组查询装置,所述装置包括:
[0013] 预设对象集拆分模块,用于从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的
各对象处于同一预设区域范围内;
[0014] 循环模块,用于若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所
述按照所述目标维度信息将预设对象集划分为一个或多个对象子集的步骤;
[0015] 分组标识生成模块,用于若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;
[0016] 存储模块,用于根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;
[0017] 查询处理模块,用于根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理。
[0018] 根据本公开的实施例的第三方面,提供了一种电子设备,包括:
[0019] 处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前述分组查询方法。
[0020] 根据本公开的实施例的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述分组查询方法。
[0021] 本公开的实施例提供了一种分组查询方法、装置、电子设备及可读存储介质,所述方法包括:从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息
将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预设区域
范围内;若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选
取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述按照所述目标
维度信息将预设对象集划分为一个或多个对象子集的步骤;若其中一个所述对象子集的数
据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;根据所述对象子
集对应的分组标识将所述预设对象集的对象信息进行分块存储;根据所述对象子集对应的
分组标识对分块存储的所述对象信息进行查询处理。本公开的实施例可以在对象子集的数
据量大于数据量阈值时,将对象子集进一步划分直至对象子集的数据量小于数据量阈值,
可以保证存储的均匀性,有助于提高查询性能。

附图说明

[0022] 为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施
例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以
根据这些附图获得其他的附图。
[0023] 图1示出了本公开的一种实施例中的分组查询方法步骤流程图;
[0024] 图2示出了本公开的另一种实施例中的分组查询方法步骤流程图;
[0025] 图3示出了本公开的一种实施例中的分组查询装置的结构图;
[0026] 图4示出了本公开的另一种实施例中的分组查询装置的结构图;
[0027] 图5示出了本公开的一种实施例中的电子设备的结构图。

具体实施方式

[0028] 下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的实施例一部分实施例,而不是全部的实
施例。基于本公开的实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提
下所获得的所有其他实施例,都属于本公开的实施例保护的范围。
[0029] 实施例一
[0030] 参照图1,其示出了本公开的一种实施例中的分组查询方法的步骤流程图,具体如下。
[0031] 步骤101,从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预
设区域范围内。
[0032] 其中,预设维度信息可以针对对象设置,例如,在外卖应用场景中,对象为商家,针对商家可以设置商家的位置、商家的菜品信息、商家的销量、商家的等级等。可以理解,预设
维度信息可以从不同角度、维度表述商家的特征。
[0033] 目标维度信息用于对预设对象集进行划分,本公开的实施例可以优先使用位置信息进行划分得到一个或多个对象子集,从而使得同一对象子集中对象的位置接近预设对象
集可以为待存储和查询的对象集合,可以理解,对象集为同一类型,例如,在外卖应用场景
中,预设对象集可以为外卖平台上注册的所有商家组成的商家集合。
[0034] 具体地,首先,将预设对象集在位置维度上的取值,即位置信息按照顺序排列,例如,排序结果为:OBJ1、OBJ2、OBJ3、OBJ4、OBJ5、OBJ6、OBJ7、OBJ8,然后,按照预设数目将预设
对象集划分为对象子集,若预设数目为4,则得到对象子集结果为:OBJ1和OBJ2组成的第一
对象子集,OBJ3和OBJ4组成的第二对象子集,OBJ5和OBJ6组成的第三对象子集,OBJ7和OBJ8
组成的第四对象子集。
[0035] 此外,还可以按照一定差值阈值,将预设对象集划分为多个对象子集,例如,对于预设对象集中的任意两个对象,计算该两个对象的位置信息之间的距离,若该距离小于预
设距离阈值,则将该两个对象划分至同一对象子集;否则不划分至同一对象子集中。
[0036] 步骤102,若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述按照
所述目标维度信息将预设对象集划分为一个或多个对象子集的步骤。
[0037] 其中,对象子集的数据量可以通过对象子集中包含的对象数目确定,还可以进一步结合对象数目和每个对象的对象信息数目、每个对象信息的占用大小确定。例如,对于一
个包含M个对象的对象子集,可以直接将对象M作为数据量,若每个对象对应4个对象信息:
位置、商品信息、销量、等级,则还可以将对象的数目和每个对象的对象信息数目的乘积4*M
作为数据量;此外,若对象信息的占用大小分别为N1字节、N2字节、N3字节、N4字节,则还可
以进一步将对象的数目、每个对象的对象信息数目、对象信息的总占用大小的乘积4*M*(N1
+N2+N3+N4)作为数据量。
[0038] 需要说明的是,数据量阈值根据数据量的统计方式不同而设定不同的值,本公开的实施例对数据量阈值的设定不加以限制。
[0039] 其中,新的目标维度信息为与原目标维度信息不同的维度信息,可以根据实际应用场景选取,也可以随机选取,或按照维度信息的优先级选取最高优先级的维度信息作为
目标维度信息。。
[0040] 本公开的实施例可以在对象子集的数据量大于数据量阈值时,将对象子集进一步拆分为更小的对象子集,该步骤循环进行直至每个对象子集的数据量均小于或等于数据量
阈值,从而使得每个对象子集的数据量均匀分布。例如,若预设对象集包括:OBJ1、OBJ2、
OBJ3、…、OBJN,首先,将位置信息作为目标维度信息对其进行划分得到两个对象子集:OBJ1
至OBJ10、OBJ11至OBJN,此时,若对象子集OBJ11至OBJN的数据量大于预设数据量阈值,则继
续选取对象的评价得分作为目标维度信息,对对象子集OBJ11至OBJN进一步划分得到三个
对象子集:OBJ11至OBJ30、OBJ31至OBJ70、OBJ71至OBJN,若此时三个对象子集的数据量均小
于预设数据量阈值,则不对其进行继续划分,从而最终得到的对象子集包括:OBJ1至OBJ10、
OBJ11至OBJ30、OBJ31至OBJ70、OBJ71至OBJN四个对象子集。
[0041] 在本公开的实施例中,可以将目标维度信息的取值接近或相同的对象划分至同一对象子集中,从而预设对象集可以划分为一个或多个对象子集。当然,对象子集的数目越
多,越有助于查询效率的提高。
[0042] 步骤103,若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识。
[0043] 其中,分组标识可以随机生成,也可以按照预设规则生成,本公开的实施例对其不加以限制。
[0044] 可以理解,同一个对象子集中的对象在目标维度信息上的取值相同或接近,并对应同一分组标识,属于同一个分组。
[0045] 步骤104,根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储。
[0046] 在本公开的实施例中,可以将具有同一分组标识的对象存储至同一位置,从而使得不同位置的存储量均匀分布。例如,若预设对象集包括:OBJ1、OBJ2、OBJ3、…、OBJN,而从
而可以将属于同一分组标识的OBJ1至OBJ10的对象信息存储至同一位置,将属于同一分组
标识的OBJ1至OBJN的对象信息存储至另一位置。
[0047] 步骤105,根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理。
[0048] 具体地,可以将一个分组标识对应的所有对象一次性读取,避免读取数据时需要在多个存储区之间切换,有助于提高查询性能。
[0049] 在实际应用中,还可以基于分组标识直接查询,例如,对于即时任务场景,对象信息为商家信息,用户在发起即时任务时,可以将其中一个商家作为参考商家携带在即时任
务请求中,平台在接收到该即时任务请求时首先,提取参考商家;然后,确定该参考商家的
分组标识作为目标分组标识;最后,查询该目标分组标识的所有商家信息,并返回至平台界
面,实现了返回与参考商家在目标维度信息上接近的所有商家信息。
[0050] 本公开的实施例在针对目标维度信息进行查询时具有更好的查询效率,从而可以将目标维度信息取值接近、相近的对象信息一次性查询出来,减少了与存储器的交互次数。
[0051] 综上所述,本公开的实施例提供了一种分组查询方法,所述方法包括:从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一
个或多个对象子集,所述每个对象集中的各对象处于同一预设区域范围内;若其中一个所
述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,
并将所述对象子集作为新的预设对象集,以进入所述按照所述目标维度信息将预设对象集
划分为一个或多个对象子集的步骤;若其中一个所述对象子集的数据量小于或等于预设数
据量阈值,则生成所述对象子集对应的分组标识;根据所述对象子集对应的分组标识将所
述预设对象集的对象信息进行分块存储;根据所述对象子集对应的分组标识对分块存储的
所述对象信息进行查询处理。本公开的实施例可以在对象子集的数据量大于数据量阈值
时,将对象子集进一步划分直至对象子集的数据量小于数据量阈值,可以保证存储的均匀
性,有助于提高查询性能。
[0052] 实施例二
[0053] 参照图2,其示出了在本公开的另一种实施例中的分组查询方法的具体步骤流程图,具体如下。
[0054] 步骤201,从预设维度信息中选取位置信息作为目标维度信息。
[0055] 该步骤可以参照步骤101的详细说明,在此不再赘述。
[0056] 步骤202,根据预设对象在目标维度信息上的中位数,将预设对象集划分为两个对象子集。
[0057] 具体地,首先,对预设对象在目标维度信息上的取值排序,然后,取位于中间位置的数作为中位数;最后,将中位数之前和之后的预设对象作为两个对象子集。例如,预设对
象在目标维度信息D2上的取值分别为:1、2、3、4、5、6、7、8、9、10,中位数为5.5,从而可以将
5.5之前的1、2、3、4、5和6、7、8、9、10分别划分为两个对象子集。
[0058] 本公开的实施例可以根据中位数将预设对象在每个目标维度信息上划分为两个对象子集,从而形成了类似二叉树的结构,最终使得预设对象划分为多个对象子集,每个对
象子集的数据量均小于或等于预设数据量阈值,使得每个分组标识对应的存储块的数据量
均匀。
[0059] 步骤203,若其中一个所述对象子集的数据量大于预设数据量阈值,则确定预设对象在预设维度信息上的方差。
[0060] 其中,方差可以表示预设对象在预设维度信息上的集中程度,方差越大,预设对象在预设维度信息上的分布越分散;方差越小,预设对象在预设维度信息上的分布越集中。例
如,预设对象在预设维度信息D1上的取值分别为:10、8、10、8、10、8、10、8、10、8,方差为1;预
设对象在预设维度信息D2上的取值分别为:1、2、3、4、5、6、7、8、9、10,方差为8.25,从而预设
对象在维度信息D2上的分布较分散,在维度信息D1上的分布较集中。
[0061] 在实际应用中,计算方差可以直接调用现有的接口函数,也可以自己根据方差公式编写函数。本公开的实施例对其不加以限制。
[0062] 步骤204,根据所述方差从预设维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入所述根据预设对象在目标维度信息上的中位数,将预设
对象集划分为两个对象子集的步骤。
[0063] 具体地,可以选取方差最大或较大的预设维度信息作为目标维度信息,例如,对于步骤101中的方差为1和方差为8.25的维度信息D1和D2,可以选取维度信息D2作为目标维度
信息。
[0064] 在实际应用中,若存在多个维度信息,可以首先选取方差最大的维度信息作为目标维度信息;然后在选取方差第二大的维度信息作为目标维度信息;依次类推,直至划分的
预设对象子集的数据量均小于或等于预设数据量阈值。
[0065] 可选地,在本公开的另一种实施例中,所述对象为商家,所述位置信息包括经度信息和纬度信息。
[0066] 本公开的实施例优先应用于基于位置的服务平台,例如,在外卖平台上,可以将在同一区域的商家的商家信息存储至同一存储区,从而可以将位置信息包括经度信息和维度
信息作为预设维度信息,从而可以从中选取其中一种作为目标维度信息。
[0067] 本公开的实施例可以优先按照位置将对象聚合,有助于提高基于位置的服务平台的查询效率。
[0068] 步骤205,若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识。
[0069] 该步骤可以参照步骤103的详细说明,在此不再赘述。
[0070] 步骤206,记录所述对象子集中的每个对象与所述分组标识之间的映射关系,得到第一映射关系。
[0071] 具体地,可以将每个对象的标识与分组标识的映射关系保存至内存、缓存或外部存储器。当然,可以将对象标识作为索引,从而方便根据根对象的标识获取分组标识。
[0072] 步骤207,针对每个分组标识,根据所述第一映射关系,将所述分组标识对应的所述对象子集中的每个对象的对象信息存储至同一存储块。
[0073] 其中,对象信息可以为预设维度信息,也可以为其余需要存储和查询的信息。
[0074] 具体地,可以按照顺序为每个分组标识划分固定大小的存储块,从而可以将对应该分组标识的对象信息存储至该存储块。
[0075] 步骤208,记录所述对象子集的分组标识与所述存储块之间的映射关系,得到第二映射关系。
[0076] 具体地,可以将存储块的位置与分组标识的映射关系保存至内存、缓存或外部存储器。当然,可以将分组标识作为索引,从而方便根据根对象的标识获取存储块的位置。
[0077] 本公开的实施例可以记录第二映射关系,从而可以结合第一映射关系、第二映射关系进行查询。
[0078] 步骤209,响应于对目标对象集的查询请求,根据所述第一映射关系将所述目标对象集划分为目标分组标识对应的目标对象子集。
[0079] 其中,目标对象集可以为预设对象集的子集或为预设对象集,当然,其中还可以包含不在预设对象集中的对象,从而这部分对象无法查询出结果。
[0080] 具体地,根据第一映射关系确定目标对象集中每个目标对象的目标分组标识;从而同一目标分组标识对应的目标对象组成该目标分组标识对应的目标对象子集。
[0081] 步骤210,根据所述第二映射关系确定所述目标分组标识对应的目标存储块。
[0082] 可以理解,当第二映射关系中存储的是存储块的物理地址时,这里可以直接获取到目标存储块的物理地址,从而可以直接从该地址中读取对象信息。
[0083] 步骤211,从所述目标存储块中读取对象信息得到候选对象信息,并从所述候选对象信息中筛选出所述目标对象子集的对象信息。
[0084] 在本公开的实施例中,可以一次性从目标存储块中读取目标对象集中涉及的分组标识对应的所有对象信息得到候选对象信息,然后再从候选对象信息中滤除不要的对象信
息,从而可以有助于减少与存储器的交互次数,提高查询效率。
[0085] 综上所述,基于实施例一,本公开的实施例提供了另一种分组查询方法,除具有实施例一的有益效果外,本公开的实施例还可以优先按照位置将对象聚合,有助于提高基于
位置的服务平台的查询效率;还可以根据预设维度信息的方差准确选取目标维度信息,并
根据目标维度信息的中位数准确划分对象子集;可以记录第一映射关系、第二映射关系,并
根据第一映射关系、第二映射关系,可以一次性从目标存储块中读取目标对象集中涉及的
分组标识,有助于减少与存储器的交互次数,提高查询效率。
[0086] 实施例三
[0087] 参照图3,其示出了在本公开的另一种实施例中的分组查询装置的结构图,具体如下。
[0088] 预设对象集拆分模块301,用于从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集
中的各对象处于同一预设区域范围内。
[0089] 循环模块302,用于若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入
所述预设对象集拆分模块301。
[0090] 分组标识生成模块303,用于若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识。
[0091] 存储模块304,用于根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储。
[0092] 查询处理模块305,用于根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理。
[0093] 综上所述,本公开的实施例提供了一种分组查询装置,所述装置包括:预设对象集拆分模块,用于从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度
信息将预设对象集划分为一个或多个对象子集,所述每个对象集中的各对象处于同一预设
区域范围内;循环模块,用于若其中一个所述对象子集的数据量大于预设数据量阈值,则从
所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入
所述预设对象集拆分模块;分组标识生成模块,用于若其中一个所述对象子集的数据量小
于或等于预设数据量阈值,则生成所述对象子集对应的分组标识;存储模块,用于根据所述
对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;查询处理模块,用
于根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理。本公开的
实施例可以在对象子集的数据量大于数据量阈值时,将对象子集进一步划分直至对象子集
的数据量小于数据量阈值,可以保证存储的均匀性,有助于提高查询性能。
[0094] 实施例三为实施例一对应的装置实施例,详细说明可以参照实施例一,在此不再赘述。
[0095] 实施例四
[0096] 参照图4,其示出了在本公开的一种实施例中的分组查询装置的结构图,具体如下。
[0097] 预设对象集拆分模块401,用于从预设维度信息中选取位置信息作为目标维度信息,并按照所述目标维度信息将预设对象集划分为一个或多个对象子集,所述每个对象集
中的各对象处于同一预设区域范围内;可选地,在本公开的实施例中,
[0098] 预设对象集拆分子模块4011,用于根据预设对象在目标维度信息上的中位数,将预设对象集划分为两个对象子集。
[0099] 循环模块402,用于若其中一个所述对象子集的数据量大于预设数据量阈值,则从所述维度信息中选取新的目标维度信息,并将所述对象子集作为新的预设对象集,以进入
所述预设对象集拆分模块;可选地,在本公开的另一种实施例中,所述对象为商家,所述循
环模块402,包括:
[0100] 方差确定子模块4021,用于确定预设对象在预设维度信息上的方差。
[0101] 目标维度信息选取子模块4022,用于根据所述方差从预设维度信息中选取新的目标维度信息。
[0102] 分组标识生成模块403,用于若其中一个所述对象子集的数据量小于或等于预设数据量阈值,则生成所述对象子集对应的分组标识。
[0103] 第一映射关系记录模块404,用于记录所述对象子集中的每个对象与所述分组标识之间的映射关系,得到第一映射关系。
[0104] 存储模块405,用于根据所述对象子集对应的分组标识将所述预设对象集的对象信息进行分块存储;可选地,在本公开的实施例中,所述存储模块405包括:
[0105] 存储子模块4051,用于针对每个分组标识,根据所述第一映射关系,将所述分组标识对应的所述对象子集中的每个对象的对象信息存储至同一存储块。
[0106] 第二映射关系记录子模块4052,用于记录所述对象子集的分组标识与所述存储块之间的映射关系,得到第二映射关系。
[0107] 查询处理模块406,用于根据所述对象子集对应的分组标识对分块存储的所述对象信息进行查询处理;可选地,在本公开的另一种实施例中,所述查询处理模块406,包括:
[0108] 目标对象集划分子模块4061,用于响应于对目标对象集的查询请求,根据所述第一映射关系将所述目标对象集划分为目标分组标识对应的目标对象子集。
[0109] 目标存储块确定子模块4062,用于根据所述第二映射关系确定所述目标分组标识对应的目标存储块。
[0110] 查询处理子模块4063,用于从所述目标存储块中读取对象信息得到候选对象信息,并从所述候选对象信息中筛选出所述目标对象子集的对象信息。
[0111] 可选地,在本公开的另一种实施例中,所述对象为商家,所述预设维度信息包括经度信息和纬度信息
[0112] 综上所述,基于实施例一,本公开的实施例提供了另一种分组查询方法,除具有实施例一的有益效果外,本公开的实施例还可以优先按照位置将对象聚合,有助于提高基于
位置的服务平台的查询效率;还可以根据预设维度信息的方差准确选取目标维度信息,并
根据目标维度信息的中位数准确划分对象子集;可以记录第一映射关系、第二映射关系,并
根据第一映射关系、第二映射关系,可以一次性从目标存储块中读取目标对象集中涉及的
分组标识,有助于减少与存储器的交互次数,提高查询效率。
[0113] 实施例四为实施例二对应的装置实施例,详细说明可以参照实施例二,在此不再赘述。
[0114] 本公开的实施例还提供了一种电子设备,参照图5,包括:处理器501、存储器502以及存储在所述存储器502上并可在所述处理器上运行的计算机程序5021,所述处理器501执
行所述程序时实现前述实施例的分组查询方法。
[0115] 本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的分组查询方法。
[0116] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0117] 在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求
的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以
利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描
述是为了披露本公开的实施例的最佳实施方式。
[0118] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的
方法、结构和技术,以便不模糊对本说明书的理解。
[0119] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的实施例的示例性实施例的描述中,本公开的实施例的各个特征有时被一起
分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下
意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的
特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个
实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方
式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
[0120] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
[0121] 本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实
践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开的实施例的分组查询设备
中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里
所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序
可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以
从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0122] 应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施
例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词
“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不
排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借
助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干
个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺
序。可将这些单词解释为名称。
[0123] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0124] 以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含
在本公开的实施例的保护范围之内。
[0125] 以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可
轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例
的保护范围应以权利要求的保护范围为准。