一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法、装置、电子设备及存储介质与流程

2022-02-19 08:35:35 来源:中国专利 TAG:


1.本公开涉及数据处理领域,尤其涉及一种数据处理方法、装置、电子设备及存储介质。


背景技术:

2.随着互联网技术的发展,直播业务也迅速发展起来。主播客户端在直播间进行直播,观众客户端在直播间观看主播客户端的直播视频,并与主播客户端进行互动。为了增加直播时的娱乐性,在直播过程中加入了榜单业务,用于在进行活动时记录各个观众客户端或者主播客户端的分数,并基于分数对各个观众客户端或者主播客户端进行排序,从而得到相应的排行榜。
3.已有技术下,通常采用redis(一种开源的分布式缓存/存储实现方案)对上述排行榜中包含的各个用户账号和各自对应的分数进行存储,通常根据redis分shard(分片)存多个zset(redis中的一种数据结构)记录上述各个用户账号、以及各自对应的分数和排名。
4.然而,采用上述方案对数据信息进行存储,存在着存储的数据量巨大,且数据管理混乱的问题;若需要查询上述排行榜单中任一用户账号对应的排名时,存在着查询复杂度高、查询速度低下的问题。
5.因此,需要设计一种新的方法,以解决上述问题。


技术实现要素:

6.本公开实施例提供一种数据处理方法、装置、电子设备及存储介质,用以解决已有技术下,对排名榜单进行查询时,存在着查询复杂度高、查询速度低下的问题。
7.第一方面,提供一种数据处理方法,包括:
8.接收用户账号发送的查询请求,所述查询请求包括所述用户账号和所述用户账号的评估值,所述评估值是根据指定指标对所述用户账号进行评估获得的;
9.基于所述查询请求,获取与所述指定指标关联的数据集合;
10.基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果;其中,所述数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量。
11.可选的,在所述接收用户账号发送的查询请求之前,还包括:
12.基于所述指定指标,确定各个用户账号的评估值;
13.基于确定的各个评估值,将所述各个用户账号分类存储于相应的数据桶中,其中,每个数据桶关联一种评估值,以及具有同一种评估值的用户账号存储于同一个数据桶中;
14.基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据。
15.可选的,所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据,包括:
16.分别将获取的每个数据桶所存储的用户账号各自对应的账号数量,作为所述数据集合的原始元素;
17.基于预设的转换方式,分别调用关联的原始元素,生成相应的子数据;
18.存储生成的各个子数据,以及所述各个子数据各自与至少一个原始元素之间的关联关系。
19.可选的,在所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据之后,还包括:
20.当一个用户账号的评估值发生变化时,确定所述一个用户账号的评估值变化前后各自对应的数据桶;
21.更新所述各自对应的数据桶所包括的用户账号,并基于更新后的数据桶各自对应的用户账号的数量,调整所述数据集合所包含的子数据。
22.可选的,当所述查询请求是排名查询请求时,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,包括:
23.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;
24.对所述数据集合所关联的各个评估值,按照从大到小进行排序,并将与所述用户账号的评估值相邻的上一个评估值,作为目标评估值;
25.基于所述目标评估值和所述最大的评估值,确定评估值范围;
26.基于所述评估值范围,从所述数据集合中筛选出相应的子数据;
27.基于筛选出的子数据,确定所述查询请求对应的目标查询结果。
28.可选的,所述基于筛选出的子数据,确定所述查询请求对应的目标查询结果,包括以下操作中的任意一种:
29.当所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时,将所述筛选出的子数据对应的用户账号的总数量执行加1操作,得到第一数值,并将所述第一数值作为所述查询请求对应的目标查询结果;
30.当所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息时,确定所述用户账号的桶内排名信息,以及将所述筛选出的子数据对应的用户账号的总数量,与所述用户账号的桶内排名信息执行加法操作,得到第二数值,并将所述第二数值作为所述查询请求对应的目标查询结果,其中,所述用户账号的桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
31.可选的,当所述查询请求是上一名的评估值差距查询请求,以及所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时;
32.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,包括:
33.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
34.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
35.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选
出相应的子数据;
36.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,以及基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,并将所述目标评估值与所述用户账号的评估值的差值,作为所述查询请求对应的目标查询结果,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的。
37.可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征是第一名时;
38.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,包括:
39.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
40.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
41.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
42.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的;
43.筛选出所述目标评估值关联的数据桶中桶内排名信息表征是最后一名的其他用户账号,并将所述目标评估值与所述用户账号的评估值的差值,以及所述其他用户账号、所述其他用户账号的桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
44.可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征不是第一名时;
45.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,包括:
46.确定与所述桶内排名信息相邻的上一个桶内排名信息,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的;
47.将与所述用户账号的评估值差距为零,以及所述相邻的上一个桶内排名信息对应的用户账号、所述相邻的上一个桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果。
48.可选的,当所述查询请求是排名范围查询请求,所述排名范围查询请求用于获取在所述指定指标关联的数据集合中,符合预设条件的目标查询结果,所述预设条件是以所述用户账号的评估值为基准点确定的,以及所述预设条件包含查询趋势和需查询账号数量。
49.可选的,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,包括:
50.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合关联的各个评估值中,筛选出符合所述查询趋势的各个候选评估值;
51.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
52.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
53.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量,确定出符合所述预设条件的至少一个候选评估值,其中,所述至少一个候选评估值关联的数据桶包含的用户账号的总数量不小于所述需查询账号数量;
54.将所述至少一个候选评估值,以及位于所述需查询账号数量内的用户账号中的任意一种或组合,作为查询请求对应的目标查询结果。
55.第二方面,提供一种数据处理装置,包括:
56.接收单元,用于接收用户账号发送的查询请求,所述查询请求包括所述用户账号和所述用户账号的评估值,所述评估值是根据指定指标对所述用户账号进行评估获得的;
57.获取单元,用于基于所述查询请求,获取与所述指定指标关联的数据集合;
58.确定单元,用于基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果;其中,所述数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量。
59.可选的,在所述接收用户账号发送的查询请求之前,所述接收单元还用于:
60.基于所述指定指标,确定各个用户账号的评估值;
61.基于确定的各个评估值,将所述各个用户账号分类存储于相应的数据桶中,其中,每个数据桶关联一种评估值,以及具有同一种评估值的用户账号存储于同一个数据桶中;
62.基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据。
63.可选的,所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据,所述接收单元用于:
64.分别将获取的每个数据桶所存储的用户账号各自对应的账号数量,作为所述数据集合的原始元素;
65.基于预设的转换方式,分别调用关联的原始元素,生成相应的子数据;
66.存储生成的各个子数据,以及所述各个子数据各自与至少一个原始元素之间的关联关系。
67.可选的,在所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指
标关联的所述数据集合所包含的子数据之后,所述接收单元还用于:
68.当一个用户账号的评估值发生变化时,确定所述一个用户账号的评估值变化前后各自对应的数据桶;
69.更新所述各自对应的数据桶所包括的用户账号,并基于更新后的数据桶各自对应的用户账号的数量,调整所述数据集合所包含的子数据。
70.可选的,当所述查询请求是排名查询请求时,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元用于:
71.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;
72.对所述数据集合所关联的各个评估值,按照从大到小进行排序,并将与所述用户账号的评估值相邻的上一个评估值,作为目标评估值;
73.基于所述目标评估值和所述最大的评估值,确定评估值范围;
74.基于所述评估值范围,从所述数据集合中筛选出相应的子数据;
75.基于筛选出的子数据,确定所述查询请求对应的目标查询结果。
76.可选的,所述基于筛选出的子数据,确定所述查询请求对应的目标查询结果,所述确定单元用于执行以下操作中的任意一种:
77.当所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时,将所述筛选出的子数据对应的用户账号的总数量执行加1操作,得到第一数值,并将所述第一数值作为所述查询请求对应的目标查询结果;
78.当所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息时,确定所述用户账号的桶内排名信息,以及将所述筛选出的子数据对应的用户账号的总数量,与所述用户账号的桶内排名信息执行加法操作,得到第二数值,并将所述第二数值作为所述查询请求对应的目标查询结果,其中,所述用户账号的桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
79.可选的,当所述查询请求是上一名的评估值差距查询请求,以及所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时;
80.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元用于:
81.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
82.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
83.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
84.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,以及基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,并将所述目标评估值与所述用户账号的评估值的差值,作为所述查询请求对应的目标查询结果,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个
候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的。
85.可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征是第一名时;
86.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元用于:
87.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
88.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
89.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
90.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的;
91.筛选出所述目标评估值关联的数据桶中桶内排名信息表征是最后一名的其他用户账号,并将所述目标评估值与所述用户账号的评估值的差值,以及所述其他用户账号、所述其他用户账号的桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
92.可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征不是第一名时;
93.所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元用于:
94.确定与所述桶内排名信息相邻的上一个桶内排名信息,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的;
95.将与所述用户账号的评估值差距为零,以及所述相邻的上一个桶内排名信息对应的用户账号、所述相邻的上一个桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果。
96.可选的,当所述查询请求是排名范围查询请求,所述排名范围查询请求用于获取在所述指定指标关联的数据集合中,符合预设条件的目标查询结果,所述预设条件是以所述用户账号的评估值为基准点确定的,以及所述预设条件包含查询趋势和需查询账号数量。
97.可选的,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确
定与所述查询请求对应的目标查询结果,所述确定单元用于:
98.从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合关联的各个评估值中,筛选出符合所述查询趋势的各个候选评估值;
99.分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
100.分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
101.基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量,确定出符合所述预设条件的至少一个候选评估值,其中,所述至少一个候选评估值关联的数据桶中包含的用户账号的总数量不小于所述需查询账号数量;
102.将所述至少一个候选评估值,以及位于所述需要查询账号数量内的用户账号中的任意一种或组合,作为查询请求对应的目标查询结果。
103.第三方面,提供一种电子设备,包括:
104.存储器,用于存储可执行指令;
105.处理器,用于读取并执行所述存储器中存储的可执行指令,以实现上述第一方面中任一项所述的方法。
106.第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由处理器执行时,使得所述处理器能够执行上述第一方面中任一项所述的方法。
107.第五方面,提供一种计算机程序产品,包含可执行指令,当所述计算机程序产品的可执行指令由处理器执行时,能够实现上述第一方面中任一项所述的方法。
108.本公开实施例中,接收用户账号发送的查询请求,查询请求包括用户账号和用户账号的评估值,评估值是根据指定指标对用户账号进行评估获得的;基于查询请求,获取与指定指标关联的数据集合;然后,基于用户账号的评估值,以及数据集合所包含的子数据,确定与查询请求对应的目标查询结果;其中,数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量;这样,由于数据集合包含的各个子数据分别对应至少一个评估值的用户账号的总数量,因此,通过基于查询请求获取到的相应的数据集合,以及用户账号的评估值,可以更为快速地确定与查询请求对应的目标查询结果,从而降低了查询复杂度、提高了查询速度。
附图说明
109.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
110.图1为本公开实施例中一种数据存储方法对应的数据结构示意图;
111.图2为本公开实施例中树状数组的数据结构示意图;
112.图3为本公开实施例中一种数据存储和维护的示意图;
113.图4为本公开实施例中一种数据处理方法的流程示意图;
114.图5为本公开实施例中一种应用场景进行查询的示意图;
115.图6为本公开实施例中一种数据处理装置的逻辑结构示意图;
116.图7为本公开实施例中电子设备的结构示意图。
具体实施方式
117.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开技术方案的一部分实施例,而不是全部的实施例。基于本公开文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开技术方案保护的范围。
118.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
119.为了解决已有技术下对排名榜单进行查询时,存在着查询复杂度高、查询速度低下的问题,本公开实施例中,接收用户账号发送的查询请求,查询请求包括用户账号和用户账号的评估值,评估值是根据指定指标对用户账号进行评估获得的;基于查询请求,获取与指定指标关联的数据集合;然后,基于用户账号的评估值,以及数据集合所包含的子数据,确定与查询请求对应的目标查询结果;其中,数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量,从而更为快速地确定与查询请求对应的目标查询结果,进而降低了查询复杂度、也提高了查询速度。
120.下面结合说明书附图对本公开优选的实施方式进行进一步详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本公开,并不用于限定本公开,并且在不冲突的情况下,本公开实施例中的实施例及实施例中的特征可以相互组合。
121.本公开实施例中,在介绍具体的数据处理方法(即基于排行榜进行数据查询过程)之前,先对相关联的数据存储方法进行解释说明。
122.本公开实施例中,提供的一种数据存储方法,应用于对榜单业务包含的数据进行存储,具体通过执行如下操作实现对榜单业务包含的数据的存储:
123.操作一:基于指定指标,确定各个用户账号的评估值。
124.通常每个排行榜都是基于指定指标,对该排行榜中涉及的各个用户账号进行评估,得到相应的评估值,再基于各个评估值对上述各个用户账号进行排序得到的。
125.因此,本公开实施例中,基于指定指标,对各个用户账号进行评估,确定相应的评估值。
126.例如,直播间中,基于各个观众客户端与主播客户端的互动频率,对各个观众客户端进行评估,确定各个观众客户端各自与主播客户端之间的亲密度,如,亲密度可以用分数来表示;假设观众客户端与主播客户端的亲密度为5分。
127.操作二:基于确定的各个评估值,将各个用户账号分类存储于相应的数据桶中,其中,每个数据桶关联一种评估值,以及具有同一种评估值的用户账号存储于同一个数据桶中。
128.本公开实施例中,在执行操作一时,确定了各个用户账号的评估值,那么,在执行操作一时,将上述各个评估值分别关联一个数据桶,并基于各个评估值,将各个用户账号,分类存储到相应的数据桶中,其中,具有同一评估值的各个用户账号被存储在同一个数据桶中。
129.可选的,本公开实施例中,可以采用一个zset来存储具有同一评估值的各个用户账号。
130.例如,参阅图1所示,以排行榜a为例。
131.假设该排行榜a中包含23个用户账号,以及排行榜a中各个用户账号按照评估值从大到小进行排序。
132.那么,基于指定指标,确定各个用户账号的评估值,如评估值为分数。
133.又假设上述23个用户账号关联的分数有6个,分别为8、6、5、4、2、1,且分数的最小间隔为1分。
134.那么,每个分数关联一个数据桶,一共有6个数据桶,分别关联的分数为8、6、5、4、2、1。
135.又假设每个数据桶关联redis中的一个zset。
136.那么,基于确定的各个分数,将各个用户账号分类存储于相应的数据桶(zset)中,得到的各个数据桶的存储情况如下:
137.参阅图1中(a)所示,如表1中,分数相同的各个用户账号具有相同的排名信息情况。
138.表1
139.分数(数据桶

zset(i))包含的用户账号8id16id2、id3、id45id5、id6、id7、id8、id94id10、id11、id12、id13、id14、id15、id162id17、id181id19、id20、id21、id22、id23
140.参阅图1中(b)所示,如表2中,分数相同的各个用户账号按照更新时间进行排序情况。
141.表2
142.143.操作三:基于每个数据桶所存储的用户账号的账号数量,确定指定指标关联的数据集合所包含的子数据。
144.本公开实施例中,在执行操作三时,具体的可以通过执行如下操作,得到指定指标关联的数据集合所包含的子数据:
145.操作1:分别将获取的每个数据桶所存储的用户账号各自对应的账号数量,作为数据集合的原始元素。
146.本公开实施例中,在执行操作一时,获得各个数据桶,那么,在执行操作1时,分别将上述各个数据桶各自包含的用户账号对应的账号数量,作为数据集合的原始元素。
147.例如,仍以排行榜a为例。
148.仍假设该榜单a中包含23个用户账号,基于确定的各个评估值,得到的各个数据桶如下表:
149.表3
150.分数(数据桶

zset(i))包含的用户账号用户账号的账号数量/个8id116id2、id3、id435id5、id6、id7、id8、id954id10、id11、id12、id13、id14、id15、id1672id17、id1821id19、id20、id21、id22、id235
151.则将上述各个数据桶各自对应的账号数量作为数据集合的原始元素,即,将上表中的1、3、5、7、2、5作为原始元素。
152.假设上述数据集合对应的原始元素构成的数组用数组a[i]来表示,i表征评估值,以及i为正整数。
[0153]
则上述各个数据桶对应的数组a[i]={a[1]=5,a[2]=2,a[3]=0,a[4]=7,a[5]=5,a[6]=3,a[7]=0,a[8]=1}。
[0154]
需要说明的是,本公开实施例中,基于确定的各个评估值,对应将各个用户账号分类存储在相应的数据桶中,而在基于各个数据桶,对应得到数据集合对应的原始元素构成的数组a[i]时,需按照评估值的最小单位生成数组a[i],即,需逐个填充缺失的各个原始元素,从而得到对应数据集合的各个原始元素的数组a[i]。
[0155]
操作2:基于预设的转换方式,分别调用关联的原始元素,生成相应的子数据。
[0156]
本公开实施例中,在执行操作1后,获得了数据集合的原始元素,那么在执行操作2时,获取预设的转换方式,分别调用关联的原始元素,生成相应的子数据。
[0157]
本公开实施例中,可以采用树状数组来表示上述数据集合。树状数组是一个查询和修改复杂度都为log(n)的数据结构;主要用于查询任意两个评估值之间的所有子数据之和,树状数组的数据结构如图2所示,其中,a[i]表征包含上述各个原始元素的数组,i表征评估值,i为正整数;c[j]表征采用树状数组存储的上述数据集合,j表征子数据的序号,j为正整数;以及j是基于i进行反向维护确定的,即i=最大的评估值与j=1相对应。
[0158]
可选的,本公开实施例中,参阅图1所示,可以通过每个redis的kv来存储关联的数据桶的评估值,以及通过每个redis的member来存储具有同一评估值的各个用户账号。
[0159]
可选的,本公开实施例中,参阅图1中(b)所示,针对评估值(如,分数)相同按照更新时间进行排序情况,可以通过每个redis的score来存储具有同一评估值的各个用户账号各自对应的更新时间。
[0160]
操作3:存储生成的各个子数据,以及各个子数据各自与至少一个原始元素之间的关联关系。
[0161]
本公开实施例中,在执行操作3时,将生成的数据集合包含的各个子数据进行存储,并保存数据集合中各个子数据各自与至少一个原始元素之间的关联关系。
[0162]
可选的,本公开实施例中,上述各个关联关系基于树状数组c[i]中各个子数据与a[i]中的各个原始元素之间的关系。
[0163]
例如,仍以排行榜a为例。
[0164]
仍假设基于确定的各个评估值,得到的各个数据桶仍如表3所示,以及相应的数组a[i]={a[1]=5,a[2]=2,a[3]=0,a[4]=7,a[5]=5,a[6]=3,a[7]=0,a[8]=1},i表征评估值。
[0165]
那么,得到的树状数组c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0166]
其中,
[0167]
c[1]表征评估值为8的各个用户账号的账号数量,即c[1]=a[8];
[0168]
c[2]表征评估值为8和7的各个用户账号的账号数量,即c[2)=a[8] a[7];
[0169]
c[3]表征评估值为6的各个用户账号的账户数量,即,c[3]=a[6];
[0170]
c[4]表征评估值为5

8的各个用户账号的账号数量,即c[4]=a[8] a[7] a[6] a[5];
[0171]
c[5]表征评估值为4的各个用户账号的账号数量,即c[5]=a[4];
[0172]
c[6]表征评估值为4和3的各个用户账号的账号数量,即c[6]=a[4] a[3];
[0173]
c[7]表征评估值为2的各个用户账号的账号数量,即c[7]=a[2];
[0174]
c[8]表征评估值为1

8的各个用户账号的账号数量,即c[8]=a[8] a[7] a[6] a[5] a[4] a[3] a[2] a[1]。
[0175]
需要说明的是,上述c[j]对应树状数组,由于树状数组是以二进制进行计算的,是基于与a[i]的关联关系,进行二进制计算确定的。
[0176]
本公开实施例中,基于树状数组c[j]所包含的各个子数据与数组a[i]所包含的各个子元素之间的内在关联关系,实现对数据集合所包含的子数据的维护管理,从而通过查询c[j]的前缀和的方式,达到了降低查询复杂度,提高查询速度的目的。
[0177]
本公开实施例中,由于用户账号的评估值是动态的,因此需要对上述数据集合所包含的子数据进行维护以及更新。
[0178]
具体的,可以通过执行如下操作,实现对各个子数据的维护和更新:
[0179]
操作一,当一个用户账号的评估值发生变化时,确定一个用户账号的评估值变化前后各自对应的数据桶。
[0180]
操作二,更新各自对应的数据桶所包括的用户账号,并基于更新后的数据桶各自对应的用户账号的数量,调整数据集合所包含的子数据。
[0181]
例如,参阅图3所示,假设用户账号(如,id7)的评估值为5,之后经过更新变为了6。
[0182]
那么,需要确定用户账号(即,id7)的评估值变化前后各自对应的数据桶,即5所关联的数据桶1和6所关联的数据桶2。
[0183]
然后,更新各自对应的数据桶所包含的用户账号,即将5所关联的数据桶1中的用户账号a删除,以及将用户账号a添加到6所关联的数据桶2中。
[0184]
再基于更新后的数据桶各自对应的用户账号的数量,调整相应的数据集合所包含的子数据,即调整c[3]、c[4]、c[8]。
[0185]
本公开实施例中,可以通过如下代码实现上述功能:
[0186]
for(int i=5;i>0;i

=lowbit(i)){
[0187]
bit[i]
‑‑
;//这个过程是redis kv的操作
[0188]
}
[0189]
for(inti=6;i>0;i

=lowbit(i)){
[0190]
bit[i] ;
[0191]
}
[0192]
可选的,本公开实施例中,上述调整方案还可以适用于在已有排行榜中新增用户账号或者减少用户账号,这样,可以实时改变用户账号所在的数据桶,以及基于用户账号的变化,实时调整数据集合所包含的相关联的各个子数据,从而可以降低更新复杂度,也保证了统计结果更为准确、更具时效性。
[0193]
本公开实施例中,在完成对数据存储之后,便可以基于上述数据集合所包含的子数据,实现更为快速地数据处理。
[0194]
本公开实施例中,参阅图4所示,本公开实施例中,提供了一种数据处理方法,具体流程如下:
[0195]
步骤400:接收用户账号发送的查询请求,查询请求包括用户账号和用户账号的评估值,评估值是根据指定指标对用户账号进行评估获得的。
[0196]
本公开实施例中,接收用户账户发送的查询请求包含但不限于如下三种:
[0197]
1、排名查询请求,比如,用户账号a当前位于排行榜中的排名;
[0198]
2、上一名的评估值差距查询请求,比如,在当前排行榜中,查询用户账号a与相邻上一名的其他用户账号之间的评估值差距;
[0199]
3、排名范围查询请求,比如,在当前排行榜中,用户账号a当前排名的前10名和/或后10名的其他用户账号等。
[0200]
步骤410:基于查询请求,获取与指定指标关联的数据集合。
[0201]
本公开实施例中,在执行步骤410时,基于查询请求包含的用户账号和用户账号的评估值,获取与评估值关联的指定指标,然后,基于该指定指标,获取相应的数据集合。
[0202]
可选的,本公开实施例中,查询请求中还可以包含与用户账号的评估值相关联的排行榜标识,因此,基于该排行榜标识,获取相应的数据集合。
[0203]
步骤420:基于用户账号的评估值,以及数据集合所包含的子数据,确定与查询请求对应的目标查询结果;其中,数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量。
[0204]
本公开实施例中,基于查询请求的不同,采用不同的查询方式,具体的:
[0205]
1、针对排名查询请求
[0206]
本公开实施例中,当查询请求是排名查询请求时,通过执行如下步骤,得到针对排名查询请求对应的目标查询结果:
[0207]
步骤4201:从数据集合所关联的各个评估值中,筛选出最大的评估值。
[0208]
步骤4202:对数据集合所关联的各个评估值,按照从大到小进行排序,并将与用户账号的评估值相邻的上一个评估值,作为目标评估值。
[0209]
步骤4203:基于目标评估值和所述最大的评估值,确定评估值范围。
[0210]
步骤4204:基于评估值范围,从数据集合中筛选出相应的子数据。
[0211]
步骤4205:基于筛选出的子数据,确定查询请求对应的目标查询结果。
[0212]
本公开实施例中,在执行步骤4205时,包含但不限于如下两种情况:
[0213]
情况一,当用户账号所在的数据桶中不包含用户账号与其他用户账号之间的排名信息时,将筛选出的子数据对应的用户账号的总数量执行加1操作,得到第一数值,并将第一数值作为查询请求对应的目标查询结果。
[0214]
例如,仍以排行榜a为例。
[0215]
假设该排行榜a中,分数相同的各个用户账号具有相同的排名信息情况。
[0216]
针对图1中(a)的应用场景,假设接收到用户账号的排名查询请求,其中,排名查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0217]
那么,基于上述排名查询请求,获得与指定指标关联的数据集合c[j]。
[0218]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0219]
则通过执行如下操作,得到相应的目标查询结果:
[0220]
操作1,从数据集合c[j]所关联的各个评估值中,筛选出最大的评估值。
[0221]
具体的,数据集合c[j]所关联的各个评估值包含1、2、4、5、6、8,那么,从上述1、2、4、5、6、8中,筛选出最大的评估值,即最大的评估值为8。
[0222]
操作2、对数据集合所关联的各个评估值,按照从大到小进行排序,并将与用户账号的评估值(即id18对应的分数为2)相邻的上一个评估值(即,分数4),作为目标评估值,即得到的目评估值为4。
[0223]
操作3、基于目标评估值和最大的评估值,确定评估值范围,即[4,8]。
[0224]
操作4、基于评估值范围,从数据集合中筛选出相应的子数据。
[0225]
具体的,本公开实施例中,基于上述评估值范围[4,8],从c[j]中筛选出的子数据包括:c[4]、c[5]。
[0226]
操作5、基于筛选出的子数据,确定排名查询请求对应的目标查询结果。
[0227]
具体实施例中,c[4] c[5]=9 7=16,即a[8] a[7] a[6] a[4]=16。
[0228]
则将筛选出的子数据对应的用户账号的总数量执行加1操作,得到第一数值,即16 1=17;故上述排名查询请求对应的目标查询结果为17,即id18在排行榜a中的排名信息为第17名。
[0229]
本公开实施例中,可以通过执行下述核心代码段,来得到大于等于某个评估值的用户账号的账号总数量:
[0230][0231]
本公开实施例中,上述整个查询过程对应的时间复杂度为o(log(maxs)),其中,maxs为对应的排行榜中最大的评估值;这样,通过将上述排行榜关联的数据采用数据集合(即,树状数组)进行存储和维护管理,可以极大地降低查询复杂度,提高查询速度。
[0232]
情况二,当用户账号所在的数据桶中包含用户账号与其他用户账号之间的排名信息时,确定用户账号的桶内排名信息,以及将筛选出的子数据对应的用户账号的总数量,与用户账号的桶内排名信息执行加法操作,得到第二数值,并将第二数值作为查询请求对应的目标查询结果,其中,用户账号的桶内排名信息是根据用户账号的更新时间,对用户账号和其他用户账号进行排序得到的。
[0233]
例如,仍以排行榜a为例。
[0234]
假设该排行榜a中,分数相同的各个用户账号按照更新时间进行排序情况。
[0235]
针对图1中(b)的应用场景,假设接收到用户账号的排名查询请求,其中,排名查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0236]
那么,基于上述排名查询请求,获得与指定指标关联的数据集合c[j]。
[0237]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0238]
则与针对图1中(a)对应的应用场景相同,通过执行操作1

操作4,筛选出c[4]、c[5],然后,得到评估值不小于4的账号数量为c[4] c[5]=9 7=16,即a[8] a[7] a[6] a[4]=16;并确定用户账号(即,id18)的桶内排名信息。
[0239]
假设id18的桶内排名信息表征为第2名。
[0240]
则将筛选出的子数据对应的用户账号的总数量,与用户账号的桶内排名信息执行加法操作,得到第二数值,即16 2=18,故排名查询请求对应的目标查询结果为18,即id18在排行榜a中的排名信息为第18名。
[0241]
本公开实施例中,仍可以通过执行上述核心代码段来得到,在此不再赘述。需要说明的是,本公开实施例中,下述查询过程,均可以采用上述查询前缀和的方法进行查询,相应的,整个查询过程对应的时间复杂度为o(log(maxs)),其中,maxs为对应的排行榜中最大的评估值;这样,可以极大地降低查询复杂度,提高查询速度。
[0242]
降低查询复杂度,从而提高查询速度。
[0243]
2、针对上一名的评估值差距查询请求
[0244]
本公开实施例中,当接收到的查询请求是上一名的评估值差距查询请求,以及用户账号所在的数据桶中不包含用户账号与其他用户账号之间的排名信息时,即对应图1中(a)的应用场景(分数相同的各个用户账号按照更新时间进行排序情况),则通过执行如下
步骤,得到相应的目标查询结果:
[0245]
步骤4201’:从数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从数据集合所关联的各个评估值中,筛选出大于用户账号的评估值的各个候选评估值。
[0246]
步骤4202’:分别基于最大的评估值和各个候选评估值,确定相应的候选评估值范围。
[0247]
步骤4203’:分别基于确定的各个候选评估值范围,从数据集合所包含的子数据中,筛选出相应的子数据。
[0248]
步骤4204’:基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,以及基于上述各个候选评估值范围对应的用户账号的总数量确定目标评估值,并将目标评估值与用户账号的评估值的差值,作为查询请求对应的目标查询结果,其中,目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,最大的用户账号的总数量是从上述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0249]
例如,参阅图5所示,仍以排行榜a为例。
[0250]
假设该排行榜a中,分数相同的各个用户账号按照更新时间进行排序情况。
[0251]
针对图1中(a)的应用场景,假设接收到用户账号的查询请求是上一名的评估值差距查询请求,其中,查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0252]
那么,基于上述查询请求,获得与指定指标关联的数据集合c[j]。
[0253]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0254]
则通过执行如下操作,得到相应的目标查询结果:
[0255]
操作1,从数据集合c[j]所关联的各个评估值中,筛选出最大的评估值。
[0256]
具体的,数据集合c[j]所关联的各个评估值包含1、2、4、5、6、8,那么,从上述1、2、4、5、6、8中,筛选出最大的评估值,即最大的评估值为8。
[0257]
操作2,采用二分查找算法,从上述数据集合所关联的各个评估值中,筛选出大于用户账号的评估值的各个候选评估值。
[0258]
具体实施中,基于最大的评估值和用户账号(即,id18)的评估值(即分数:2),筛选出大于2的各个候选评估值,比如3、4、5、6、7、8。
[0259]
操作3,基于筛选出的最大的评估值和各个候选评估值,确定各个候选评估值范围。
[0260]
具体实施中,在执行步骤3时,可以得到如下6个候选评估值范围:
[0261]
[3,8]、[4,8]、[5,8]、[6,8]、[7,8]、[8,8]。
[0262]
操作4,基于上述各个候选评估值范围,从数据集合c[j]中,筛选出相应的子数据。
[0263]
本公开实施例中,在执行步骤4时,仍可以通过执行上述核心代码段,获得相应的大于等于s的用户账号的账号总数量,其中,s依次为3、4、5、6、7、8。
[0264]
操作5,基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,然后,基于上述各个候选评估值范围对应的用户账号的总数量,确定目标评估值,其中,目标评估值是最大的用户账号的总数量所关联的至少一个候
选评估值中的最大的候选评估值,最大的用户账号的总数量是从上述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0265]
本公开实施例中,计算得到的各个候选评估值范围各自对应的用户账号的账号总数量如下表:
[0266]
表4
[0267]
候选评估值候选评估值范围子数据前缀和目标评估值3[3,8]c[4]、c[6]9 7=16 4[4,8]c[4]、c[5]9 7=16√5[5,8]c[4]9 6[6,8]c[2]、c[3]1 3=4 7[7,8]c[2]1 8[8,8]c[1]1 [0268]
基于上述6个候选评估值范围各自对应的用户账号的总数量,筛选出最大的候选评估值范围对应的用户账号的总数量,然后,将最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,确定为目标评估值。
[0269]
即基于上表6个候选评估值范围各自对应的前缀和,筛选出最大的用户账号的总数量对应的候选评估值范围为[3,8]、[4,8],再从上述两个最大的用户账号的总数量中选择最大的候选评估值,即从3、4中选择最大的候选评估值;由于4>3,因此,将该最大的候选评估值(即,4),作为目标评估值。
[0270]
可选的,本公开实施例中,基于上述确定目标评估值的方法,可以从上述各个候选评估值范围对应的用户账号的总数量中,确定排名信息在查询请求包含的用户账号(即,id18)之前的第一个包含有用户账号的数据桶。参阅表4所示,候选评估值范围[3,8]、[4,8]对应的用户账号的总数量均为16,则可知评估值为3所关联的数据桶中不包含用户账号,即根据指定指标对用户账号进行评估时,没有用户账号的评估值为3,因此,大于用户账号(即,id18)的评估值(即,2)的第一个包含有用户账号的数据桶的评估值为4。
[0271]
操作6,将目标评估值与用户账号(即,id18)的评估值的差值,作为上述上一名的评估值差距请求对应的目标查询结果。
[0272]
本公开实施例中,将4和2的差值,即4

2=2,作为目标查询结果,即id18在排行榜a中,与上一名的评估值差距为2。
[0273]
需要说明的是,本公开实施例中,由于采用树状数组的数据结构进行数据的存储,因此,基于上述数据集合(树状数组)所包含的子数据,可以更为快速地查询到相应的查询结果,上述整个查询过程对应的时间复杂度为o(log(maxs)*log(maxs)),其中,maxs为对应的排行榜中最大的评估值。
[0274]
本公开实施例中,当接收到的查询请求仍是上一名的评估值差距查询请求,以及用户账号所在的数据桶中包含用户账号与其他用户账号之间的排名信息时,即对应图1中(b)的应用场景(分数相同的各个用户账号按照更新时间进行排序情况),包含但不限于如下两种情况:
[0275]
情况1,用户账号的桶内排名信息表征是第一名时,则通过执行如下步骤,得到相应的目标查询结果:
[0276]
步骤4201”:从数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从数据集合所关联的各个评估值中,筛选出大于用户账号的评估值的各个候选评估值。
[0277]
步骤4202”:分别基于最大的评估值和各个候选评估值,确定相应的候选评估值范围。
[0278]
步骤4203”:分别基于确定的各个候选评估值范围,从数据集合所包含的子数据中,筛选出相应的子数据。
[0279]
步骤4204”:基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,并基于上述各个候选评估值范围对应的用户账号的总数量确定目标评估值,其中,目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,最大的用户账号的总数量是从上述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0280]
步骤4205”:筛选出目标评估值关联的数据桶中桶内排名信息表征是最后一名的其他用户账号,并将目标评估值与用户账号的评估值的差值,以及其他用户账号、其他用户账号的桶内排名信息对应的更新时间中的任意一种或组合,作为查询请求对应的目标查询结果,其中,每个桶内排名信息是根据用户账号的更新时间,对用户账号和其他用户账号进行排序得到的。
[0281]
例如,仍参阅图5所示,仍以排行榜a为例。
[0282]
假设该排行榜a中,分数相同的各个用户账号按照更新时间进行排序情况。
[0283]
针对图1中(b)的应用场景,假设接收到用户账号的查询请求是上一名的评估值差距查询请求,其中,查询请求包括用户账号(如,id17)和用户账号的评估值(分数:2)。
[0284]
那么,基于上述查询请求,获得与指定指标关联的数据集合c[j]。
[0285]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0286]
则与针对图1中(a)对应的应用场景相同,通过执行操作1

操作5,给予二分查找算法,筛选出6个候选评估值范围各自对应的用户账号的总数量,仍如表4所示。
[0287]
再基于上述6个候选评估值范围各自对应的用户账号的总数量,筛选出最大的候选评估值范围对应的用户账号的总数量,然后,将最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,确定为目标评估值,即最大的候选评估值为4。
[0288]
然后,从目标评估值关联的数据桶中,筛选出桶内排名信息表征为最后一名的其他用户账号,假设为评估值为4的数据桶中桶内排名信息表征最后一名的是id16。
[0289]
那么,本公开实施例中,将4和2的差值,即4

2=2,以及id16或/和id16对应的更新时间(如,t16),作为目标查询结果,即,id17在排行榜a中,与上一名的评估值差距为2,上一名为id16,或/和,id16的桶内排名信息对应的更新时间为t16。
[0290]
这样,本公开实施例中,可以基于上述数据集合(树状数组)所包含的子数据,快速地查询到相应的查询结果,上述整个查询过程对应的时间复杂度为o(log(maxs)*log(maxs)),其中,maxs为对应的排行榜中最大的评估值。
[0291]
情况2,用户账号的桶内排名信息表征不是第一名时,则通过执行如下步骤,得到相应的目标查询结果:
[0292]
步骤4201
”’
:确定与桶内排名信息相邻的上一个桶内排名信息,其中,每个桶内排名信息是根据用户账号的更新时间,对用户账号和其他用户账号进行排序得到的。
[0293]
步骤4202
”’
:将与用户账号的评估值差距为零,以及相邻的上一个桶内排名信息对应的用户账号、相邻的上一个桶内排名信息对应的更新时间中的任意一种或组合,作为查询请求对应的目标查询结果。
[0294]
例如,仍参阅图5所示,仍以排行榜a为例。
[0295]
假设该排行榜a中,分数相同的各个用户账号按照更新时间进行排序情况。
[0296]
针对图1中(b)的应用场景,假设接收到用户账号的查询请求是上一名的评估值差距查询请求,其中,查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0297]
那么,基于上述查询请求,获得与指定指标关联的数据集合c[j]。
[0298]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0299]
由于id18的桶内排名信息表征不是第一名,那么,确定与id18桶内排名信息相邻的上一个桶内排名信息,即id17。
[0300]
然后,将与用户账号的评估值差距为零,以及相邻的上一个桶内排名信息对应的用户账号、相邻的上一个桶内排名信息对应的更新时间中的任意一种或组合,作为查询请求对应的目标查询结果。
[0301]
那么,本公开实施例中,将0,以及id17或/和id17对应的更新时间(如,t17),作为目标查询结果,即,id18在排行榜a中,与上一名的评估值差距为0,上一名为id17,或/和,id17的桶内排名信息对应的更新时间为t17。
[0302]
相应的,本公开实施例中,可以基于上述数据集合(树状数组)所包含的子数据,快速地查询到相应的查询结果,上述整个查询过程对应的时间复杂度为o(log(maxs)*log(maxs)),其中,maxs为对应的排行榜中最大的评估值。
[0303]
本公开实施例中,通过上述数据集合(即,树状数组)和用户账号的评估值,可以快速地查询到用户账号的上一名的评估值差距,从而确定用户账号的评估值加1后,可以提升的排名信息。
[0304]
进一步地,本公开实施例中,支持对每个数据桶中包含的各个用户账号按照更新时间进行排序,从而得到相应的桶内排名信息,这样,目标查询结果中还可以包含上一名的其他用户账号,或/和,上一名的其他用户账号的更新时间,进而使用户基于上述更新时间,制定更为详细地提高评估值的策略。
[0305]
3、针对排名范围查询请求
[0306]
本公开实施例中,查询请求还可以是排名范围查询请求,其中,排名范围查询请求用于获取在指定指标关联的数据集合中,符合预设条件的目标查询结果,预设条件是以用户账号的评估值为基准点确定的,以及预设条件包含查询趋势和需查询账号数量。
[0307]
那么,本公开实施例中,可以通过执行如下步骤,得到针对排名范围查询请求对应的目标查询结果:
[0308]
步骤4201
””
:从数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从数据集合关联的各个评估值中,筛选出符合查询趋势的各个候选评估值。
[0309]
步骤4202
””
:分别基于最大的评估值和各个候选评估值,确定相应的候选评估值
范围。
[0310]
步骤4203
””
:分别基于确定的各个候选评估值范围,从数据集合所包含的子数据中,筛选出相应的子数据。
[0311]
步骤4204
””
:基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,并基于上述各个候选评估值范围对应的用户账号的总数量,确定出符合预设条件的至少一个候选评估值,其中,至少一个候选评估值关联的数据桶包含的用户账号的总数量不小于需查询账号数量。
[0312]
步骤4205
””
:将至少一个候选评估值,以及位于需查询账号数量内的用户账号中的任意一种或组合,作为查询请求对应的目标查询结果。
[0313]
例如,仍以排行榜a为例。
[0314]
假设该排行榜a中,分数相同的各个用户账号具有相同的排名信息情况。
[0315]
针对图1中(a)的应用场景,假设接收到用户账号的查询请求是评估值范围查询请求,其中,查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0316]
那么,基于上述查询请求,获得与指定指标关联的数据集合c[j]。
[0317]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0318]
假设预设条件是以id18为基准点,id18前5名的用户账号,即查询趋势是在排行榜a中,以id18为基准点,向排名信息表征在id18之前的方向进行查询,需查询账号数量是5名。
[0319]
由于该应用场景中,具有相同评估值的用户账号具有相同的排名信息,则从数据集合c[j]所关联的各个评估值中,筛选出最大的评估值,即最大的评估值为8。
[0320]
然后,采用二分查找算法,筛选出符合查询趋势(即,向排名信息表征在id18之前的方向)的各个候选评估值,并通过执行操作1

操作4,确定大于id18的评估值(即,大于2)的第一个包含有用户账号的数据桶包含的用户账号的总数量:
[0321]
操作1,基于筛选出的最大的评估值和各个候选评估值,确定各个候选评估值范围。
[0322]
操作2,基于上述各个候选评估值范围,从数据集合c[j]中,筛选出相应的子数据。
[0323]
操作3,基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,并基于上述各个候选评估值范围对应的用户账号的总数量,确定目标评估值,其中,目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,最大的用户账号的总数量是从上述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0324]
操作4,基于目标评估值,确定目标评估值关联的数据桶的用户账号的总数量,其中,目标评估值关联的数据桶即为大于id18的评估值的第一个包含有用户账号的数据桶。
[0325]
本公开实施例中,当上述目标评估值关联的数据桶的用户账号的总数量不小于需查询账号数量时,停止查询,返回的相应的目标查询结果。
[0326]
可选的,本公开实施例中,当上述目标评估值关联的数据桶的用户账号的总数量小于需查询账号数量时,继续采用上述操作1

操作4记载的方法,确定与已确定的数据桶(即,目标评估值——大于id18的评估值的第一个包含有用户账号的数据桶)相邻的上一个
数据桶,计算上一个数据桶的用户账号的总数量,直至查询到满足需查询账号数量为止,返回相应的目标查询结果。
[0327]
可选的,本公开实施例中,目标查询结果可以是上述确定的各个评估值,也可以是上述各个评估值,以及关联的数据桶中包含的位于需查询账号数量内的用户账号中的任意一种或组合。
[0328]
本公开实施例中,针对评估值范围查询请求中,预设条件是以用户账号为基准点,查询趋势是查询用户账号后n名的用户账号对应的查询方式,与上述查询用户账号前5名的方式相同,在此不再赘述,其中,n为不大于最大的评估值的正整数。
[0329]
又例如,仍以排行榜a为例。
[0330]
假设该排行榜a中,分数相同的各个用户账号按照更新时间进行排序情况。
[0331]
针对图1中(b)的应用场景,假设接收到用户账号的查询请求是评估值范围查询请求,其中,查询请求包括用户账号(如,id18)和用户账号的评估值(分数:2)。
[0332]
那么,基于上述查询请求,获得与指定指标关联的数据集合c[j]。
[0333]
又假设上述数据集合c[j]={c[1]=1,c[2]=1,c[3]=3,c[4]=9,c[5]=7,c[6)=7,c[7]=2,c[8]=18},j为正整数。
[0334]
假设预设条件是以id18为基准点,id18前5名的用户账号,即查询趋势是在排行榜a中,以id18为基准点,向排名信息表征在id18之前的方向进行查询,需查询账号数量是5名。
[0335]
则本公开实施例中,可以先确定id18的评估值关联的数据桶中的账户数量,若id18的桶内排名信息大于5,则将桶内排名信息在id18之前的5名用户账号,作为目标查询结果,其中,目标查询结果可以包含上述前5名的用户账号、各自对应的更新时间中的任意一种或组合。
[0336]
可选的,若id18的桶内排名信息小于5,则从数据集合c[j]所关联的各个评估值中,筛选出最大的评估值,即最大的评估值为8。
[0337]
然后,采用二分查找算法,筛选出符合查询趋势(即,向排名信息表征在id18之前的方向)的各个候选评估值,并通过同样执行操作1

操作4,确定出大于id18的评估值(即,大于2)的第一个包含有用户账号的数据桶包含的用户账号的总数量:
[0338]
操作1,基于筛选出的最大的评估值和各个候选评估值,确定各个候选评估值范围。
[0339]
操作2,基于上述各个候选评估值范围,从数据集合c[j]中,筛选出相应的子数据。
[0340]
操作3,基于上述各个候选评估值范围筛选出的子数据,确定上述各个候选评估值范围对应的用户账号的总数量,并基于上述各个候选评估值范围对应的用户账号的总数量,确定目标评估值,其中,目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,最大的用户账号的总数量是从上述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0341]
操作4,基于目标评估值,确定目标评估值关联的数据桶的用户账号的总数量,其中,目标评估值关联的数据桶即为大于id18的评估值的第一个包含有用户账号的数据桶。
[0342]
本公开实施例中,当上述目标评估值关联的数据桶的用户账号的总数量,以及id18所在的数据桶中排名信息在id18之前的用户账号的总数量之和,不小于需查询账号数
量时,停止查询,返回的相应的目标查询结果。
[0343]
可选的,本公开实施例中,当上述目标评估值关联的数据桶的用户账号的总数量,以及id18所在的数据桶中排名信息在id18之前的用户账号的总数量之和,小于需查询账号数量时,继续采用上述操作1

操作4记载的方法,确定与已确定的数据桶(即,目标评估值——大于id18的评估值的第一个包含有用户账号的数据桶)相邻的上一个数据桶,并计算上一个数据桶的用户账号的总数量,目标评估值关联的数据桶的用户账号的总数量,以及id18所在的数据桶中排名信息在id18之前的用户账号的总数量之和,直至查询到满足需查询账号数量为止。
[0344]
可选的,本公开实施例中,目标查询结果可以是上述确定的各个评估值(如,id18的评估值、目标评估值等等),也可以是上述各个评估值(如,id18的评估值、目标评估值等等)、以及关联的数据桶中包含的位于需查询账号数量内的用户账号,或/和位于需查询账号数量内的用户账号的桶内排名信息对应的更新时间。
[0345]
本公开实施例中,针对评估值范围查询请求中,预设条件是以用户账号为基准点,查询趋势是查询用户账号后n名的用户账号对应的查询方式,与上述查询用户账号前5名的方式相同,在此不再赘述,其中,n为不大于最大的评估值的正整数。
[0346]
本公开实施例中,由于采用数据集合(即,树状数组)这一的数据存储方案,在降低查询复杂度、提高查询速度的基础上,还提供了已有技术下,不能或者不便于进行查询的信息,如,用户账号前若干名或/和后若干名的用户账号的关联信息等。
[0347]
基于同一发明构思,参阅图6所示,本公开实施例中提供一种数据处理装置,包括::
[0348]
接收单元610,用于接收用户账号发送的查询请求,所述查询请求包括所述用户账号和所述用户账号的评估值,所述评估值是根据指定指标对所述用户账号进行评估获得的;
[0349]
获取单元620,用于基于所述查询请求,获取与所述指定指标关联的数据集合;
[0350]
确定单元630,用于基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果;其中,所述数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量。
[0351]
可选的可选的,在所述接收用户账号发送的查询请求之前,所述接收单元610还用于:
[0352]
基于所述指定指标,确定各个用户账号的评估值;
[0353]
基于确定的各个评估值,将所述各个用户账号分类存储于相应的数据桶中,其中,每个数据桶关联一种评估值,以及具有同一种评估值的用户账号存储于同一个数据桶中;
[0354]
基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据。
[0355]
可选的,所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据,所述接收单元610用于:
[0356]
分别将获取的每个数据桶所存储的用户账号各自对应的账号数量,作为所述数据集合的原始元素;
[0357]
基于预设的转换方式,分别调用关联的原始元素,生成相应的子数据;
[0358]
存储生成的各个子数据,以及所述各个子数据各自与至少一个原始元素之间的关联关系。
[0359]
可选的,在所述基于每个数据桶所存储的用户账号的账号数量,确定所述指定指标关联的所述数据集合所包含的子数据之后,所述接收单元610还用于:
[0360]
当一个用户账号的评估值发生变化时,确定所述一个用户账号的评估值变化前后各自对应的数据桶;
[0361]
更新所述各自对应的数据桶所包括的用户账号,并基于更新后的数据桶各自对应的用户账号的数量,调整所述数据集合所包含的子数据。
[0362]
可选的,当所述查询请求是排名查询请求时,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元630用于:
[0363]
从所述数据集合所关联的各个评估值中,筛选出最大的评估值;
[0364]
对所述数据集合所关联的各个评估值,按照从大到小进行排序,并将与所述用户账号的评估值相邻的上一个评估值,作为目标评估值;
[0365]
基于所述目标评估值和所述最大的评估值,确定评估值范围;
[0366]
基于所述评估值范围,从所述数据集合中筛选出相应的子数据;
[0367]
基于筛选出的子数据,确定所述查询请求对应的目标查询结果。
[0368]
可选的,所述基于筛选出的子数据,确定所述查询请求对应的目标查询结果,所述确定单元630用于执行以下操作中的任意一种:
[0369]
当所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时,将所述筛选出的子数据对应的用户账号的总数量执行加1操作,得到第一数值,并将所述第一数值作为所述查询请求对应的目标查询结果;
[0370]
当所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息时,确定所述用户账号的桶内排名信息,以及将所述筛选出的子数据对应的用户账号的总数量,与所述用户账号的桶内排名信息执行加法操作,得到第二数值,并将所述第二数值作为所述查询请求对应的目标查询结果,其中,所述用户账号的桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
[0371]
可选的,当所述查询请求是上一名的评估值差距查询请求,以及所述用户账号所在的数据桶中不包含所述用户账号与其他用户账号之间的排名信息时;
[0372]
所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元630用于:
[0373]
从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
[0374]
分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
[0375]
分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
[0376]
基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对
应的用户账号的总数量,以及基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,并将所述目标评估值与所述用户账号的评估值的差值,作为所述查询请求对应的目标查询结果,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的。
[0377]
可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征是第一名时;
[0378]
所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元630用于:
[0379]
从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合所关联的各个评估值中,筛选出大于所述用户账号的评估值的各个候选评估值;
[0380]
分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
[0381]
分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
[0382]
基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量确定目标评估值,其中,所述目标评估值是最大的用户账号的总数量所关联的至少一个候选评估值中的最大的候选评估值,所述最大的用户账号的总数量是从所述各个候选评估值范围对应的用户账号的总数量中筛选出的;
[0383]
筛选出所述目标评估值关联的数据桶中桶内排名信息表征是最后一名的其他用户账号,并将所述目标评估值与所述用户账号的评估值的差值,以及所述其他用户账号、所述其他用户账号的桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的。
[0384]
可选的,当所述查询请求是上一名的评估值差距查询请求,所述用户账号所在的数据桶中包含所述用户账号与其他用户账号之间的排名信息,以及所述用户账号的桶内排名信息表征不是第一名时;
[0385]
所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元630用于:
[0386]
确定与所述桶内排名信息相邻的上一个桶内排名信息,其中,每个桶内排名信息是根据用户账号的更新时间,对所述用户账号和其他用户账号进行排序得到的;
[0387]
将与所述用户账号的评估值差距为零,以及所述相邻的上一个桶内排名信息对应的用户账号、所述相邻的上一个桶内排名信息对应的更新时间中的任意一种或组合,作为所述查询请求对应的目标查询结果。
[0388]
可选的,当所述查询请求是排名范围查询请求,所述排名范围查询请求用于获取在所述指定指标关联的数据集合中,符合预设条件的目标查询结果,所述预设条件是以所
述用户账号的评估值为基准点确定的,以及所述预设条件包含查询趋势和需查询账号数量。
[0389]
可选的,所述基于所述用户账号的评估值,以及所述数据集合所包含的子数据,确定与所述查询请求对应的目标查询结果,所述确定单元630用于:
[0390]
从所述数据集合所关联的各个评估值中,筛选出最大的评估值;并采用二分查找算法,从所述数据集合关联的各个评估值中,筛选出符合所述查询趋势的各个候选评估值;
[0391]
分别基于所述最大的评估值和所述各个候选评估值,确定相应的候选评估值范围;
[0392]
分别基于确定的各个候选评估值范围,从所述数据集合所包含的子数据中,筛选出相应的子数据;
[0393]
基于所述各个候选评估值范围筛选出的子数据,确定所述各个候选评估值范围对应的用户账号的总数量,并基于所述各个候选评估值范围对应的用户账号的总数量,确定出符合所述预设条件的至少一个候选评估值,其中,所述至少一个候选评估值关联的数据桶中包含的用户账号的总数量不小于所述需查询账号数量;
[0394]
将所述至少一个候选评估值,以及位于所述需查询账号数量内的用户账号中的任意一种或组合,作为查询请求对应的目标查询结果。
[0395]
基于同一发明构思,参阅图7所示,本公开实施例提供了一种电子设备,例如,电子设备700可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0396]
参照图7,电子设备700可以包括以下一个或多个组件:处理组件702,存储器704,电源组件706,多媒体组件708,音频组件710,输入/输出(i/o)的接口712,传感器组件714,以及通信组件716。
[0397]
处理组件702通常控制电子设备700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件702可以包括一个或多个处理器720来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件702可以包括一个或多个模块,便于处理组件702和其他组件之间的交互。例如,处理组件702可以包括多媒体模块,以方便多媒体组件708和处理组件702之间的交互。
[0398]
存储器709被配置为存储各种类型的数据以支持在电子设备700的操作。这些数据的示例包括用于在电子设备700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器704可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0399]
电源组件706为电子设备700的各种组件提供电力。电源组件706可以包括电源管理系统,一个或多个电源,及其他与为电子设备700生成、管理和分配电力相关联的组件。
[0400]
多媒体组件708包括在电子设备700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作
的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件708包括一个前置摄像头和/或后置摄像头。当电子设备700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0401]
音频组件710被配置为输出和/或输入音频信号。例如,音频组件710包括一个麦克风(mic),当电子设备700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器704或经由通信组件716发送。在一些实施例中,音频组件710还包括一个扬声器,用于输出音频信号。
[0402]
i/o接口712为处理组件702和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0403]
传感器组件714包括一个或多个传感器,用于为电子设备700提供各个方面的状态评估。例如,传感器组件714可以检测到电子设备700的打开/关闭状态,组件的相对定位,例如所述组件为电子设备700的显示器和小键盘,传感器组件714还可以检测电子设备700或电子设备700一个组件的位置改变,用户与电子设备700接触的存在或不存在,电子设备700方位或加速/减速和电子设备700的温度变化。传感器组件714可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件714还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件714还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0404]
通信组件716被配置为便于电子设备700和其他设备之间有线或无线方式的通信。电子设备700可以接入基于通信标准的无线网络,如wifi,运营商网络(如2g、3g、4g或5g),或它们的组合。在一个示例性实施例中,通信组件716经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件716还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
[0405]
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例中计算机设备执行的任意一种方法。
[0406]
基于同一发明构思,本公开实施例提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由处理器执行时,能够执行上述实施例中计算机设备执行的任意一种方法。
[0407]
基于同一发明构思,本公开实施例提供一种计算机程序产品,包含可执行指令,当所述计算机程序产品的可执行指令由处理器执行时,能够实现如上述实施例中计算机设备执行的任意一种方法。
[0408]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、
只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0409]
本公开的实施方式的用于一种数据存储程序产品可以采用便携式紧凑盘只读存储器(cd

rom)并包括程序代码,并可以在计算设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0410]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0411]
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等,或者上述的任意合适的组合。
[0412]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向实体的程序设计语言—诸如java、c 等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0413]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0414]
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0415]
综上所述,本公开实施例中,接收用户账号发送的查询请求,查询请求包括用户账号和用户账号的评估值,评估值是根据指定指标对用户账号进行评估获得的;基于查询请求,获取与指定指标关联的数据集合;然后,基于用户账号的评估值,以及数据集合所包含的子数据,确定与查询请求对应的目标查询结果;其中,数据集合包含的各个子数据分别对应至少一种评估值的用户账号的总数量;这样,由于数据集合包含的各个子数据分别对应至少一个评估值的用户账号的总数量,因此,通过基于查询请求获取到的相应的数据集合,以及用户账号的评估值,可以更为快速地确定与查询请求对应的目标查询结果,从而降低了查询复杂度、提高了查询速度。
[0416]
进一步地,本公开实施例中,提供了一种数据存储的方式,即根据各个评估值,将各个用户账号分类存储到相应的数据桶中,其中,每个数据桶所包含的各个用户账号关联
同一评估值,并且每个数据桶中还可以包含各个用户账号的桶内排名信息对应的更新时间,从而再基于上述各个数据桶各自对应的用户账号的总数量,按照预设的转换方式,确定数据集合所包含的各个子数据,进而使基于上述数据集合和查询请求,确定的目标查询结果更为详细;加之,基于用户账号的评估值的动态变化,可以实时对相关联的数据桶和子数据进行调整,从而使目标查询结果可以更为准确、更具时效性。
[0417]
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0418]
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程图像显示设备的处理器以产生一个机器,使得通过计算机或其他可编程图像显示设备的处理器执行的指令产生用于实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能的装置。
[0419]
这些计算机程序指令也可存储在能引导计算机或其他可编程图像显示设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图中的一个流程或多个流程和/或方框图中的一个方框或多个方框中指定的功能。
[0420]
这些计算机程序指令也可装载到计算机或其他可编程图像显示设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0421]
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
[0422]
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献