同行人查询方法、系统、装置、计算机设备和存储介质与流程

未命名 09-15 阅读:167 评论:0


1.本发明涉及数据处理技术领域,尤其涉及一种同行人查询方法、系统、装置、计算机设备和存储介质。


背景技术:

2.随着智慧城市的兴起和大数据处理技术的发展,基于同行人分析的应用场景越来越广泛。所谓同行人,通常是指在同一摄像头下,在较短时间,例如10秒内分别出现的两个人,即认为两个人存在同行的可能性。如何查询同行人,成为基于同行人分析的关键。
3.在现有技术中,先构建时间轴和以人为key的抓拍字典的两个数据结构存储数据,然后根据同行人算法查找同行人。由于数据结构的限制,数据量越大,查找越慢。
4.因此,如何提升同行人查询速度,成为本领域亟需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种同行人查询方法、系统、装置、计算机设备和存储介质,用于解决现有技术中的上述技术问题。
6.一方面,为实现上述目的,本发明提供了一种同行人查询方法。
7.该同行人查询方法应用于中心节点,所述同行人查询方法包括:接收同行人查询请求,其中,所述同行人查询请求包括所要查询的目标人员的身份标识信息;获取查询范围内的位置标识信息,其中,所述查询范围包括若干区域,所述位置标识信息用于标识所述区域;利用所述目标人员的身份标识信息和每个所述位置标识信息构建关键字,得到若干初始关键字;在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字,其中,所述抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,在所述关键字数据集中被查找到的所述初始关键字为目标关键字;向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及接收并聚合各个所述子节点发送的查询结果,以响应所述同行人查询请求。
8.进一步地,利用多个预设函数将所述抓拍数据构建的关键字分别映射为函数值,得到多个抓拍函数值,在标记位图中,各个位置的初始状态为第一状态,所述抓拍函数值对应的位置被设置为第二状态;在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字的步骤包括:通过所述多个预设函数将所述初始关键字映射为函数值,得到多个初始函数值;在所述标记位图中,查找所述初始函数值对应位置处的状态,其中,当所述初始关键字对应的各个初始函数值查找到的状态均为所述第二状态时,所述初始关键字为所述目标关键字。
9.进一步地,所述标记位图为布隆过滤器的位图,所述布隆过滤器利用所述查询范围内的抓拍数据构建,将所述初始关键字输入至所述布隆过滤器,执行通过所述多个预设函数将所述初始关键字映射为函数值,得到多个初始函数值,在所述标记位图中,查找所述初始函数值对应位置处的状态的步骤。
10.进一步地,所述布隆过滤器设置于所述中心节点的redis中。
11.进一步地,采用以下公式分别计算所述布隆过滤器的参数:
12.n=ceil(m/(-k/log(1-exp(log(p)/k))))
13.p=pow(1-exp(-k/(m/n)),k)
14.m=ceil((n*log(p))/log(1/pow(2,log(2))))
15.k=round((m/n)*log(2))
16.其中,m为所述标记位图所占空间,n为所述布隆过滤器中元素的个数,p为假阳率,且p在0-1之间,k为所述预设函数的个数。
17.进一步地,所述同行人查询请求所要查询的目标人员包括第一目标人员和第二目标人员,所述第一目标人员对应的目标关键字为第一目标关键字,所述第二目标人员对应的目标关键字为第二目标关键字,向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求的步骤包括:向所述第一目标关键字和所述第二目标关键字共同包括的位置标识信息所对应的子节点发送同行人查询请求。
18.又一方面,为实现上述目的,本发明提供了一种同行人查询装置。
19.该同行人查询装置应用于中心节点,所述同行人查询装置包括:接收模块,用于接收同行人查询请求,其中,所述同行人查询请求包括所要查询的目标人员的身份标识信息;获取模块,用于获取查询范围内的位置标识信息,其中,所述查询范围包括若干区域,所述位置标识信息用于标识所述区域;构建模块,用于利用所述目标人员的身份标识信息和每个所述位置标识信息构建关键字,得到若干初始关键字;查找模块,用于在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字,其中,所述抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,在所述关键字数据集中被查找到的所述初始关键字为目标关键字;发送模块,用于向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及响应模块,用于接收并聚合各个所述子节点发送的查询结果,以响应所述同行人查询请求。
20.又一方面,为实现上述目的,本发明提供了一种同行人查询系统。
21.该同行人查询系统包括中心节点和多个子节点,其中,所述中心节点用于执行本发明提供的任意一种同行人查询方法;以及所述子节点用于接收和响应所述中心节点发送的同行人查询子请求。
22.又一方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
23.又一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
24.本发明提供的同行人查询方法、系统、装置、计算机设备和存储介质,中心节点接收到同行人查询请求后,获取查询范围内的各区域对应的位置标识信息,与同行人查询请求包括的所要查询的目标人员的身份标识信息分别构建关键字,得到若干初始关键字,然后在查询范围内抓拍数据构建的关键字数据集中,查找各个初始关键字,将查找到的初始关键字定义为目标关键字,则向目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求,最终接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。通过
本发明,利用身份标识信息和位置标识信息构建关键字,中心节点在查询范围内抓拍数据构建的关键字数据集中,查找目标人员的身份标识信息与各区域的位置标识信息构建的关键字,如果目标人员的身份标识信息与某区域的位置标识信息构建的关键字被查找到,说明目标人员在该区域出现过,中心节点通过查找的结果可确定出目标人员在哪些区域出现,进而向这些区域对应的子节点发送同行人查询子请求,利用各个子节点提供的同行人查询服务查询目标人员的同行人,既避免向无关的子节点发送查询子请求,减少请求数量,同时在中心节点存储关键字数据集、通过关键字匹配确定目标人员出现的区域,减少了数据存储,提升整体查询速度。
附图说明
25.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
26.图1为本发明实施例一提供的同行人查询方法的流程图;
27.图2为本发明实施例一提供的布隆过滤器的原理示意图;
28.图3为本发明实施例二提供的同行人查询方法的流程图;
29.图4为本发明实施例三提供的同行人查询方法的流程图;
30.图5为本发明实施例四提供的同行人查询装置的框图;
31.图6为本发明实施例五提供的同行人查询系统的框图;
32.图7为本发明实施例六提供的计算机设备的硬件结构图。
具体实施方式
33.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.发明人研究发现,在现有技术中,在进行同行人查询时,通常会针对以万作为数量级路数的摄像头的抓拍数据,因此,按照数据量以百路摄像头构成的单节点为单位,就会有100+节点。此时若每次同行人查询都向各节点发送查询请求,就会有100+个网络请求,而若其中部分服务出现延迟,就会直接反映到整个服务上,同时,网络波动和延迟也会影响最终的响应速度,使得同行人查询速度有待提高。
35.为了解决上述问题,发明人进一步进行研究,提出两种解决问题的思路如下。
36.思路1:构建一个字典,存储人像库中每个人在哪些节点出现过,这样只需要在查询同行人时向出现过的节点发送请求就可以了,从而减少很多不必要的查询请求。但是,字典key为人口库,一个市的人口按1000万算,100个地区就需要至少10g的内存,如果人像库和地区增加,内存占用会更大,不利于构建和维护。
37.思路2:构建一个总的同行人数据结构,中心化管理,这样就不需要大量的网络请求了,但是按照1000万人一万个摄像头计算,单独的存储结构至少要用几十个g,而且查询会非常缓慢,因为容易遍历到非常多的不相关信息。
38.基于上述思路,发明人最终研究提出本发明提供的同行人查询方法、系统、装置、计算机设备和存储介质,以减少不必要的网络请求,同时保证同行人的查询效率。关于本发明提供的同行人查询方法、系统、装置、计算机设备和存储介质的具体实施例,将在下文中详细描述。
39.实施例一
40.本发明实施例一提供了一种同行人查询方法,该同行人查询方法应用于中心节点,通过该方法,在响应同行人查询请求时,先基于查询范围内抓拍数据构建的关键字数据集,利用目标人员的身份标识信息和每个区域对应的位置标识信息构建关键字,并在关键字数据集中进行匹配,确定目标人员可能出现的区域,然后对每个区域所对应的子节点发送同行人查询子请求,最终根据各个子节点发送的查询结果来响应同行人查询请求,不需要对所有的子节点发送查询子请求,减少不必要的查询请求数量,同时通过关键字匹配减少数据存储,提升查询速度。具体地,图1为本发明实施例一提供的同行人查询方法的流程图,如图1所示,该实施例提供的同行人查询方法包括如下的步骤s101至步骤s106。
41.步骤s101:接收同行人查询请求。
42.可选地,中心节点设置同行人查询接口,用户通过访问该接口,发送同行人查询请求至中心节点。该同行人查询请求包括所要查询的目标人员的身份标识信息,该身份标识信息与人一一对应,例如可以为人的身份证信息、人员编码信息等。同行人查询请求查询的是确定范围内该目标人员的同行人,在本发明中定义该范围为查询范围。查询范围具体可以为默认的预设范围,也可以通过同行人查询请求的参数指定范围。
43.可选地,同行人查询请求可以查询单个目标人员的同行人,也可以查询多个目标人员共同的同行人,例如,中心节点设置两个接口,分别接收参数包括1个身份标识信息或2个身份标识信息的同行人查询请求。
44.步骤s102:获取查询范围内的位置标识信息。
45.其中,查询范围包括若干区域,位置标识信息是用于标识区域的信息,区域与位置标识信息一一对应。
46.可选地,在一种实施例中,将查询范围按照地理位置进行划分,划分为不同的地理区域,然后采用空间地址编码方法,为不同地理区域赋值不同的位置标识信息。具体地,通过空间地址编码方法,将地理区域的二维空间经纬度数据编码成一个字符串,以字符串长度作为精度,经过编码后,相同精度的经纬度形成一个个格子,某一精度下的某一格子内部的经纬度在精度一致的情况下形成的字符串一致,该字符串即为位置标识信息。利用该空间地址编码方法确定区域的位置标识信息,既满足位置标识信息与地理区域一一对应的要求,又能够使得后续构建的关键字占用空间小。
47.或者,可选地,在另一种实施例中,也可以按照行政管辖将查询范围按照地理位置进行划分。
48.步骤s103:利用目标人员的身份标识信息和每个位置标识信息构建关键字,得到若干初始关键字。
49.可选地,可对身份标识信息和位置标识信息进行运算得到关键字,具体可以采用现有技术中任一的运算方法。或者,也可以直接利用身份标识信息和位置标识信息组合得到关键字。
50.对于一个目标人员,若查询范围包括n个区域,则该目标人员的身份标识信息和n个位置标识信息可构建得到n个初始关键字。
51.步骤s104:在查询范围内抓拍数据构建的关键字数据集中,查找初始关键字。
52.其中,查询范围内的抓拍数据是查询范围内摄像头抓拍到的人员数据。抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,可选地,可利用摄像头的二维空间经纬度对摄像头进行地理分区,即可确定抓拍所在的区域,例如,将摄像头的二维空间经纬度按照geohash空间地址编码方法进行编码,得到字符串,并选择特定的精度,从而在精度一致的情况下形成的字符串一致,使得不同空间相近的摄像头自动被确定为同一地理分区。
53.查询范围内所有的抓拍数据形成查询范围内的数据档案,利用该数据档案预先构建关键字数据集。具体是利用每条抓拍数据构建关键字,所有抓拍数据构建的关键字形成关键字数据集。该步骤s104中,在关键字数据集中查找每个初始关键字,并将查找到的初始关键字确定为目标关键字。当初始关键字出现在关键字数据集中,也即确定一个目标关键字时,表征目标人员出现过该目标关键字所包括的位置标识信息对应的区域。
54.步骤s105:向目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求。
55.其中,在每个子节点设置一个或多个区域内的抓拍数据,将查询范围内所有的抓拍数据分割,以分布于不同的子节点,建立区域位置标识信息与子节点的对应关系,例如,每个子节点设置一个区域的抓拍数据,子节点与区域一一对应,也即子节点与区域标识信息形成一一对应关系;又如,每两个子节点设置一个区域的抓拍数据,子节点与两个区域对应,也即子节点与两个区域标识信息形成对应关系。通过步骤s104确定目标人员出现过的区域后,在该步骤s105中,只向出现过的区域对应的子节点发送同行人查询子请求。
56.步骤s106:接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。
57.子节点上布置对应区域的抓拍数据以及同行人查询服务,在接收到同行人查询子请求时,在抓拍数据中查询与目标人员在要求时间内分别出现的人员,作为查询结果。子节点将查询结果返回至中心节点,中心节点接收各个子节点发送的查询结果聚合后,响应同行人查询请求。
58.在该实施例提供的同行人查询方法中,中心节点接收到同行人查询请求后,获取查询范围内的各区域对应的位置标识信息,与同行人查询请求包括的所要查询的目标人员的身份标识信息分别构建关键字,得到若干初始关键字,然后在查询范围内抓拍数据构建的关键字数据集中,查找各个初始关键字,将查找到的初始关键字定义为目标关键字,则向目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求,最终接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。采用该实施例提供的同行人查询方法,利用身份标识信息和位置标识信息构建关键字,中心节点在查询范围内抓拍数据构建的关键字数据集中,查找目标人员的身份标识信息与各区域的位置标识信息构建的关键字,如果目标人员的身份标识信息与某区域的位置标识信息构建的关键字被查找到,说明目标人员在该区域出现过,中心节点通过查找的结果可确定出目标人员在哪些区域出现,进而向这些区域对应的子节点发送同行人查询子请求,利用各个子节点提供的同行人查询服务查询目标人员的同行人,既避免向无关的子节点发送查询子请求,减少请求数量,同时
在中心节点存储关键字数据集、通过关键字匹配确定目标人员出现的区域,减少了数据存储,提升整体查询速度。
59.可选地,在一种实施例中,利用多个预设函数将抓拍数据构建的关键字分别映射为函数值,得到多个抓拍函数值,在标记位图中,各个位置的初始状态为第一状态,抓拍函数值对应的位置被设置为第二状态;在查询范围内抓拍数据构建的关键字数据集中,查找初始关键字的步骤包括:通过多个预设函数将初始关键字映射为函数值,得到多个初始函数值;在标记位图中,查找初始函数值对应位置处的状态,其中,当初始关键字对应的各个初始函数值查找到的状态均为第二状态时,初始关键字为目标关键字。
60.具体而言,针对关键字数据集中的每个通过抓拍数据构建的关键字,利用多个预设函数将分别映射为函数值,得到多个抓拍函数值,也即关键字数据集中的每个关键字均可映射得到多个抓拍函数值。构建一个标记位图,其各个位置的初始状态为第一状态,例如第一状态为0,建立值与标记位图中各位置的对应关系,将各个抓拍函数值对应位置配置为第二状态,例如第二状态为1,从而达到利用标记位图中各位置处的状态来标记是否存在抓拍函数值。在查找某一初始关键字时,先通过上述多个预设函数将该初始关键字映射为函数值,得到多个初始函数值,然后在标记位图中查找每个初始函数值对应位置处的状态是否为第二状态,如果一个初始关键字的所有初始函数值在标记位图中对应位置处的状态均为第二状态,则表明该初始关键字在关键字数据集中存在,也即为目标关键字。
61.采用该实施例提供的同行人查询方法,能够快速判断初始关键字是否存在于关键字数据集中,从而提高查找效率。
62.可选地,在一种实施例中,标记位图为布隆过滤器的位图,布隆过滤器利用查询范围内的抓拍数据构建,将所述初始关键字输入至布隆过滤器,执行通过多个预设函数将初始关键字映射为函数值,得到多个初始函数值,在标记位图中,查找初始函数值对应位置处的状态的步骤。
63.具体而言,图2为本发明实施例一提供的布隆过滤器的原理示意图,如图2所示,通过布隆过滤器来实现查找初始关键字的过程。布隆过滤器是一种基于hash函数的数据结构,各个预设函数也即布隆过滤器的hash函数,标记位图为布隆过滤器的位图。在构建布隆过滤器时,先利用位图实现一个大小为m的位数组,并将所有的位都初始化为0。同时,选择k个不同的hash函数。遍历关键字数据集的每个关键字,将每个关键字作为一个元素,依次通过k个hash函数得到k个哈希值,然后将位数组中对应位置的位设置为1,表示该位置的元素存在。在利用该布隆过滤器查询初始关键字是否在关键字数据集中存在时,将该初始关键字str1输入至布隆过滤器,同样通过k个hash函数得到k个哈希值,然后检查位数组中k个哈希值分别对应位置的位,如果所有的位都为1,则判断该初始关键字可能存在;如果至少有一个位为0,则判断该初始关键字一定不存在。
64.采用该实施例提供的同行人查询方法,利用布隆过滤器的思想过滤出目标人员可能出现的区域,可以在占用很小的存储情况下,减少不必要的网络请求,同时保证了子节点的效率问题。在中心节点,可以取得查询范围内的关键字数据集,根据其构造布隆过滤器数据结构,而每个子节点构造同行人服务的数据都是关键字数据集的一部分,当出现一个同行人查询请求时,通过布隆过滤器过滤出所有可能出现过的子节点,只需要向这些子节点发送网络请求即可。
65.可选地,在一种实施例中,布隆过滤器设置于中心节点的redis中。
66.具体而言,将布隆过滤器保存在redis中,以进行中心节点和子节点之间的数据交换与同步,从而高可用地提供高效的同行人分布式服务,进一步提升同行人查询效率。
67.可选地,在一种实施例中,采用以下公式分别计算布隆过滤器的参数:
68.n=ceil(m/(-k/log(1-exp(log(p)/k))))
69.p=pow(1-exp(-k/(m/n)),k)
70.m=ceil((n*log(p))/log(1/pow(2,log(2))))
71.k=round((m/n)*log(2))
72.其中,m为标记位图所占空间,n为布隆过滤器中元素的个数,p为假阳率,且p在0-1之间,k为预设函数的个数。ceil函数的作用是返回不小于给定参数的最小整数;pow函数的作用是计算一个数的指定次幂,它接受两个参数,也即底数(base)和指数(exponent),pow函数返回底数的指数次幂的结果。round函数的作用是将一个数进行四舍五入,使其最接近且最接近的整数。
73.由于不同元素的哈希值可能会冲突,因此在使用布隆过滤器查找初始关键字时可能会出现误报的情况,即判断初始关键字存在但实际不存在,也即存在一定的假阳率。在该实施例提供的同行人查询方法中,布隆过滤器的参数n、p、m、k可根据具体情况灵活调节,以实现可接受的假阳率和内存在用的平衡。以1000w人像库,100个区域为例,关键字数据集中元素的个数预估为1000w*100,即n=10^9,若假阳率p为0.001,k=8,用8个hash函数,内存占用仅为1.75g,此时假设每次目标人员仅在10个区域出现过,则需要的网络请求数为10+90*0.001《11,减小查询请求数量和内存,并且还可以保证单个子节点的查询效率。
74.实施例二
75.该实施例二为在上述实施例一的基础上的一种优选实施例,图3为本发明实施例二提供的同行人查询方法的流程图,如图3所示,该同行人查询方法包括如下的步骤s201至步骤s208。
76.骤s201:接收针对单个目标id的同行人查询请求。
77.其中,目标id为目标人员的身份标识信息,该同行人查询请求为得到目标id的所有同行人的请求。
78.步骤s202:获取查询范围内每个区域对应的地点编号。
79.其中,查询范围包括若干区域,地点编号为用于标识区域的位置标识信息。该地点编号为利用geohash空间地址编码方法,对区域二维的空间经纬度数据编码行成的字符串。
80.步骤s203:利用目标id和每个地点编号构建关键字,得到若干初始关键字。
81.步骤s204:将初始关键字输入至布隆过滤器,通过布隆过滤器设置的多个预设函数,将初始关键字映射为函数值,得到多个初始函数值。
82.步骤s205:在布隆过滤器的标记位图中,查找每个初始关键字的各个初始函数值对应位置处的状态。
83.步骤s206:当一个初始关键字对应的各个初始函数值,在标记位图中查找到的状态均为第二状态时,确定该初始关键字为目标关键字。
84.步骤s207:向目标关键字包括的地点编号所对应的子节点发送同行人查询子请求。
85.步骤s208:接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。
86.在该实施例中,遍历所有地点编号,与目标id结合当作key,对于每个key,用k个hash函数计算得到k个hash值,每个hash值都去标记位图中找对应的标记,若有一个为0,则跳过处理下一个key;否则将此地区编号记录下来。得到当前的目标id所有可能出现的地点编号,这些地区可能会多于实际出现的区域,但是通过设置布隆过滤器的参数,可以使得假阳率在可接受的范围内。中心节点向这些地区编号对应的子节点发送目标id的同行人请求,在收到所有响应后聚合在一起发送查询响应。
87.实施例三
88.该实施例三为在上述实施例一的基础上的一种优选实施例,图4为本发明实施例二提供的同行人查询方法的流程图,如图4所示,该同行人查询方法包括如下的步骤s301至步骤s308。
89.骤s301:接收针对目标id1和目标id2的同行人查询请求。
90.其中,目标id1和目标id2为目标人员的身份标识信息,该同行人查询请求为得到目标id1和目标id2共同的所有同行人的请求。
91.步骤s302:获取查询范围内每个区域对应的地点编号。
92.其中,查询范围包括若干区域,地点编号为用于标识区域的位置标识信息。该地点编号为利用geohash空间地址编码方法,对区域二维的空间经纬度数据编码行成的字符串。
93.步骤s303:利用目标id1和每个地点编号构建关键字,得到目标id1的若干初始关键字;利用目标id2和每个地点编号构建关键字,得到目标id2的若干初始关键字。
94.步骤s304:将目标id1的初始关键字输入至布隆过滤器,通过布隆过滤器设置的多个预设函数,将初始关键字映射为函数值,得到目标id1的多个初始函数值;将目标id2的初始关键字输入至布隆过滤器,通过布隆过滤器设置的多个预设函数,将初始关键字映射为函数值,得到目标id2的多个初始函数值。
95.步骤s305:在布隆过滤器的标记位图中,查找目标id1的每个初始关键字的各个初始函数值对应位置处的状态,查找目标id2的每个初始关键字的各个初始函数值对应位置处的状态。
96.步骤s306:当目标id1的一个初始关键字对应的各个初始函数值,在标记位图中查找到的状态均为第二状态,确定该初始关键字为第一目标关键字;当目标id2的一个初始关键字对应的各个初始函数值,在标记位图中查找到的状态均为第二状态时,确定该初始关键字为第二目标关键字。
97.步骤s307:向第一目标关键字和第二目标关键字共同包括的地点编号所对应的子节点发送同行人查询子请求。
98.步骤s308:接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。
99.在该实施例中,遍历所有地点编号,分别与目标id1和目标id2结合当作key,对于每个key,用k个hash函数计算得到k个hash值,每个hash值都去标记位图中找对应的标记,若有一个为0,则跳过处理下一个key;否则将此地区编号记录下来。统计目标id1和目标id2都有的地点编号,中心节点向这些地点编号对应的子节点发送目标id1和目标id2的同行人请求,在收到所有响应后聚合在一起发送查询响应。
100.实施例四
101.对应于上述各个方法实施例,本发明实施例四提供了一种同行人查询装置,相应地技术特征细节和对应的技术效果可参考上述各个实施例,在该实施例中不再赘述。图5为本发明实施例四提供的同行人查询装置的框图,该同行人查询装置应用于中心节点,如图5所示,该装置包括:接收模块401、获取模块402、构建模块403、查找模块404、发送模块405和响应模块406。
102.其中,接收模块401用于接收同行人查询请求,其中,所述同行人查询请求包括所要查询的目标人员的身份标识信息;获取模块402用于获取查询范围内的位置标识信息,其中,所述查询范围包括若干区域,所述位置标识信息用于标识所述区域;构建模块403用于利用所述目标人员的身份标识信息和每个所述位置标识信息构建关键字,得到若干初始关键字;查找模块404用于在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字,其中,所述抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,在所述关键字数据集中被查找到的所述初始关键字为目标关键字;发送模块405用于向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及响应模块406用于接收并聚合各个所述子节点发送的查询结果,以响应所述同行人查询请求。
103.可选地,在一种实施例中,关键字数据集为标记位图,利用多个预设函数将抓拍数据构建的关键字分别映射为函数值,得到多个抓拍函数值,在标记位图中,各个位置的初始状态为第一状态,抓拍函数值对应的位置被设置为第二状态;查找模块404包括:映射单元,用于通过多个预设函数将初始关键字映射为函数值,得到多个初始函数值;查找单元,用于在标记位图中,查找初始函数值对应位置处的状态,其中,当初始关键字对应的各个初始函数值查找到的状态均为第二状态时,初始关键字为目标关键字。
104.可选地,在一种实施例中,标记位图为布隆过滤器的位图,布隆过滤器利用查询范围内的抓拍数据构建,查找模块404将所述初始关键字输入至布隆过滤器,执行通过多个预设函数将初始关键字映射为函数值,得到多个初始函数值,在标记位图中,查找初始函数值对应位置处的状态的步骤。
105.可选地,在一种实施例中,布隆过滤器设置于中心节点的redis中。
106.可选地,在一种实施例中,采用以下公式分别计算布隆过滤器的参数:
107.n=ceil(m/(-k/log(1-exp(log(p)/k))))
108.p=pow(1-exp(-k/(m/n)),k)
109.m=ceil((n*log(p))/log(1/pow(2,log(2))))
110.k=round((m/n)*log(2))
111.其中,m为标记位图所占空间,n为布隆过滤器中元素的个数,p为假阳率,且p在0-1之间,k为预设函数的个数。
112.可选地,在一种实施例中,同行人查询请求所要查询的目标人员包括第一目标人员和第二目标人员,第一目标人员对应的目标关键字为第一目标关键字,第二目标人员对应的目标关键字为第二目标关键字,发送模块405还用于向第一目标关键字和第二目标关键字共同包括的位置标识信息所对应的子节点发送同行人查询请求。
113.实施例五
114.对应于上述各个方法实施例,本发明实施例五提供了一种同行人查询系统,相应地技术特征细节和对应的技术效果可参考上述各个实施例,在该实施例中不再赘述。图6为
本发明实施例五提供的同行人查询系统的框图,如图6所示,系统为一个集群,包括一个中心节点501和若干个子节点502,每个子节点502对应一个地区。
115.该中心节点用于执行本发明提供的任意一种同行人查询方法的实施例,或者,该中心节点包括本发明提供的任意一种同行人查询装置。各子节点用于接收和响应中心节点发送的同行人查询子请求。
116.中心节点接收到同行人查询请求后,先基于查询范围内抓拍数据构建的关键字数据集,利用目标人员的身份标识信息和每个区域对应的位置标识信息构建关键字,并在关键字数据集中进行匹配,确定目标人员可能出现的区域,然后对每个区域所对应的子节点发送同行人查询子请求。
117.接收到同行人查询子请求的子节点,执行同行人查询服务,并将查询结果返回给中心节点。
118.中心节点最终根据各个子节点发送的查询结果来响应同行人查询请求。
119.中心节点不需要对所有的子节点发送查询子请求,减少不必要的查询请求数量,同时通过关键字匹配减少数据存储,提升查询速度。
120.实施例六
121.本发明实施例六还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器012、处理器011,如图7所示。需要指出的是,图7仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
122.本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例四的同行人查询装置的程序代码等。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
123.处理器011在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如同行人查询方法等。
124.实施例七
125.本实施例七还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁
盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储同行人查询装置,被处理器执行时实现实施例一的同行人查询方法。
126.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
127.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
128.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
129.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

技术特征:
1.一种同行人查询方法,其特征在于,应用于中心节点,所述同行人查询方法包括:接收同行人查询请求,其中,所述同行人查询请求包括所要查询的目标人员的身份标识信息;获取查询范围内的位置标识信息,其中,所述查询范围包括若干区域,所述位置标识信息用于标识所述区域;利用所述目标人员的身份标识信息和每个所述位置标识信息构建关键字,得到若干初始关键字;在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字,其中,所述抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,在所述关键字数据集中被查找到的所述初始关键字为目标关键字;向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及接收并聚合各个所述子节点发送的查询结果,以响应所述同行人查询请求。2.根据权利要求1所述的同行人查询方法,其特征在于,利用多个预设函数将所述抓拍数据构建的关键字分别映射为函数值,得到多个抓拍函数值,在标记位图中,各个位置的初始状态为第一状态,所述抓拍函数值对应的位置被设置为第二状态;在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字的步骤包括:通过所述多个预设函数将所述初始关键字映射为函数值,得到多个初始函数值;在所述标记位图中,查找所述初始函数值对应位置处的状态,其中,当所述初始关键字对应的各个初始函数值查找到的状态均为所述第二状态时,所述初始关键字为所述目标关键字。3.根据权利要求2所述的同行人查询方法,其特征在于,所述标记位图为布隆过滤器的位图,所述布隆过滤器利用所述查询范围内的抓拍数据构建,将所述初始关键字输入至所述布隆过滤器,执行通过所述多个预设函数将所述初始关键字映射为函数值,得到多个初始函数值,在所述标记位图中,查找所述初始函数值对应位置处的状态的步骤。4.根据权利要求3所述的同行人查询方法,其特征在于,所述布隆过滤器设置于所述中心节点的redis中。5.根据权利要求3所述的同行人查询方法,其特征在于,采用以下公式分别计算所述布隆过滤器的参数:n=ceil(m/(-k/log(1-exp(log(p)/k))))p=pow(1-exp(-k/(m/n)),k)m=ceil((n*log(p))/log(1/pow(2,log(2))))k=round((m/n)*log(2))其中,m为所述标记位图所占空间,n为所述布隆过滤器中元素的个数,p为假阳率,且p在0-1之间,k为所述预设函数的个数。6.根据权利要求1所述的同行人查询方法,其特征在于,所述同行人查询请求所要查询的目标人员包括第一目标人员和第二目标人员,所述第一目标人员对应的目标关键字为第一目标关键字,所述第二目标人员对应的目标关键字为第二目标关键字,向所述目标关键
字包括的位置标识信息所对应的子节点发送同行人查询子请求的步骤包括:向所述第一目标关键字和所述第二目标关键字共同包括的位置标识信息所对应的子节点发送同行人查询请求。7.一种同行人查询装置,其特征在于,应用于中心节点,所述同行人查询装置包括:接收模块,用于接收同行人查询请求,其中,所述同行人查询请求包括所要查询的目标人员的身份标识信息;获取模块,用于获取查询范围内的位置标识信息,其中,所述查询范围包括若干区域,所述位置标识信息用于标识所述区域;构建模块,用于利用所述目标人员的身份标识信息和每个所述位置标识信息构建关键字,得到若干初始关键字;查找模块,用于在所述查询范围内抓拍数据构建的关键字数据集中,查找所述初始关键字,其中,所述抓拍数据包括被抓拍人的身份标识信息和抓拍所在区域的位置标识信息,在所述关键字数据集中被查找到的所述初始关键字为目标关键字;发送模块,用于向所述目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及响应模块,用于接收并聚合各个所述子节点发送的查询结果,以响应所述同行人查询请求。8.一种同行人查询系统,其特征在于,包括中心节点和多个子节点,其中,所述中心节点用于执行权利要求1至6中任一项所述的同行人查询方法;以及所述子节点用于接收和响应所述中心节点发送的同行人查询子请求。9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述方法的步骤。

技术总结
本发明提供了一种同行人查询方法、系统、装置、计算机设备和存储介质。该同行人查询方法应用于中心节点,包括:接收同行人查询请求,获取查询范围内的位置标识信息,利用目标人员的身份标识信息和每个位置标识信息构建关键字,得到若干初始关键字,在查询范围内抓拍数据构建的关键字数据集中,查找初始关键字,向目标关键字包括的位置标识信息所对应的子节点发送同行人查询子请求;以及接收并聚合各个子节点发送的查询结果,以响应同行人查询请求。通过本发明,能够避免向无关子节点发送查询子请求,提升整体查询速度。提升整体查询速度。提升整体查询速度。


技术研发人员:请求不公布姓名
受保护的技术使用者:北京瑞莱智慧科技有限公司
技术研发日:2023.06.20
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐