本公开涉及数据处理,尤其涉及一种对象过滤方法、装置、电子设备及存储介质。
背景技术:
1、条件过滤是一种常见的过滤方法,通过设置过滤条件,保留满足该条件的对象,可以实现对对象的过滤;一种过滤条件是根据对象的属性确定的。
2、条件过滤在多种应用场景具有广泛的应用。例如,在对大量的待检索对象进行检索时,可以先对待检索对象进行过滤,然后对过滤后的待检索对象进行检索,以有效降低检索量。然而,基于对象的属性进行过滤时,需要遍历每个对象的每个属性,从而确定过滤后的对象。此种方法需要耗费大量的计算资源,且耗时较长。
技术实现思路
1、为克服相关技术中存在的问题,本公开提供一种对象过滤方法、装置、电子设备及存储介质。本公开的技术方案如下:
2、根据本公开实施例的第一方面,提供一种对象过滤方法,包括:
3、在根据至少一个目标属性对多个待过滤对象进行过滤时,获取过滤条件;所述过滤条件表征是否滤除包含所述目标属性的待过滤对象;
4、获取根据所述多个待过滤对象的属性生成的多个二进制位集;每个所述二进制位集的每个比特位表征:一个所述待过滤对象是否包含所述二进制位集对应的属性;
5、根据所述目标属性,从所述多个二进制位集中确定所述目标属性对应的目标二进制位集,并根据所述过滤条件,确定目标逻辑操作;所述目标逻辑操作至少包括以下任意一种或多种:与操作、或操作、非操作、异或操作和嵌套操作;
6、对所述目标二进制位集进行所述目标逻辑操作,得到结果二进制位集,并根据所述结果二进制位集中各个比特位的取值,从所述多个待过滤对象中确定过滤后的对象。
7、可选地,在所述获取根据所述多个待过滤对象的属性生成的多个二进制位集之前,所述方法还包括:
8、获取所述多个待过滤对象各自的属性;
9、根据所述多个待过滤对象的属性的数量和所述多个待过滤对象的数量,生成多个初始二进制位集;其中,所述初始二进制位集的数量大于或等于所述多个待过滤对象的属性的数量;所述初始二进制位集的比特位数大于或等于所述多个待过滤对象的数量;所述初始二进制位集的各个比特位的取值为0;每个所述初始二进制位集中处于相同位置的比特位对应的待过滤对象相同;
10、将每个所述待过滤对象的每个属性对应的所述初始二进制位集中,所述待过滤对象对应的比特位的取值置1,得到多个所述二进制位集;
11、记录每个所述属性的编号和每个所述二进制位集的编号的映射关系。
12、可选地,在所述得到多个所述二进制位集之后,所述方法还包括:
13、获取增量属性,并根据所述初始二进制位集,生成新初始二进制位集,所述新初始二进制位集的比特位数等于所述二进制位集的比特位数,所述新初始二进制位集的各个比特位的取值为0;
14、将所述新初始二进制位集中目标比特位的取值置1,得到新二进制位集,所述目标比特位为:包括所述增量属性的待过滤对象对应的比特位;
15、记录所述增量属性的编号和所述新二进制位集的编号的映射关系。
16、可选地,在所述二进制位集的比特位数等于所述多个待过滤对象的数量的情况下,在所述得到多个所述二进制位集之后,所述方法还包括:
17、将多个所述二进制位集进行不连续存储;
18、在存在增量待过滤对象的情况下,增加每个所述二进制位集的比特位;其中,增加的所述比特位为所述增量待过滤对象对应的比特位,增加的所述比特位的取值为0;
19、在所述增量待过滤对象包括任一所述二进制位集对应的属性的情况下,将所述二进制位集中所述增量待过滤对象对应的比特位的取值置1。
20、可选地,在所述二进制位集的比特位数大于所述多个待过滤对象的数量的情况下,每个所述二进制位集中存在空闲比特位,所述空闲比特位对应的待过滤对象为空;
21、在所述得到多个所述二进制位集之后,所述方法还包括:
22、获取增量待过滤对象;
23、将多个所述二进制位集中的任一空闲比特位,确定为所述增量待过滤对象对应的比特位;
24、在所述增量待过滤对象包括任一所述二进制位集对应的属性的情况下,将所述二进制位集中所述增量待过滤对象对应的比特位的取值置1。
25、可选地,在所述得到多个所述二进制位集之后,所述方法还包括:
26、获取增量待过滤对象;
27、获取被删除的待过滤对象在多个所述二进制位集中对应的比特位,并将所述被删除的待过滤对象对应的比特位确定为所述增量待过滤对象对应的比特位;其中,所述被删除的待过滤对象对应的各个比特位的取值为0;
28、在所述增量待过滤对象包括任一所述二进制位集对应的属性的情况下,将所述二进制位集中所述增量待过滤对象对应的比特位的取值置1。
29、可选地,在所述得到多个所述二进制位集之后,所述方法还包括:
30、获取待删除属性的编号;
31、从每个所述属性的编号和每个所述二进制位集的编号的映射关系中,删除所述待删除属性的编号与所述二进制位集的编号的映射关系,并释放所述待删除属性对应的二进制位集所占用的内存空间。
32、可选地,在所述得到多个所述二进制位集之后,所述方法还包括:
33、记录每个所述待过滤对象的编号的存在性;
34、在存在待删除待过滤对象时,将所述待删除待过滤对象的编号的存在性修改为不存在,并将所述待删除待过滤对象对应的各个比特位的取值置0。
35、可选地,在所述得到多个所述二进制位集之后,所述方法还包括:
36、在获取任一所述待过滤对象的属性的情况下,确定所述待过滤对象对应的比特位在多个所述二进制位集中的位置;
37、遍历多个所述二进制位集中所述待过滤对象对应的比特位的取值,确定所述待过滤对象是否包括各个所述二进制位集对应的属性。
38、根据本公开实施例的第二方面,提供一种对象过滤装置,包括:
39、条件获取模块,被配置为在根据至少一个目标属性对多个待过滤对象进行过滤时,获取过滤条件;所述过滤条件表征是否滤除包含所述目标属性的待过滤对象;
40、位集获取模块,被配置为获取根据所述多个待过滤对象的属性生成的多个二进制位集;其中,每个所述二进制位集的每个比特位表征:一个所述待过滤对象是否包含所述二进制位集对应的属性;
41、目标确定模块,被配置为根据所述目标属性,从所述多个二进制位集中确定所述目标属性对应的目标二进制位集,并根据所述过滤条件,确定目标逻辑操作;所述目标逻辑操作至少包括以下任意一种或多种:与操作、或操作、非操作、异或操作和嵌套操作;
42、逻辑操作模块,被配置为对所述目标二进制位集进行所述目标逻辑操作,得到结果二进制位集,并根据所述结果二进制位集中各个比特位的取值,从所述多个待过滤对象中确定过滤后的对象。
43、根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的对象过滤方法。
44、根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面所述的对象过滤方法。
45、根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的对象过滤方法。
46、本公开的实施例提供的技术方案可以包括以下有益效果:
47、本公开中,将过滤转化为二进制位集之间的逻辑操作,充分利用了底层硬件适合并行执行逻辑操作的特征,从而高效地完成了对待过滤对象的过滤。其中,只需对目标二进制位集进行目标逻辑操作,而目标二进制位集的数量为目标属性对应的位集,因此目标二进制位集的数量较少,且因为目标二进制位集的比特位的取值只能为1或0,因此,对目标位集进行目标逻辑操作的所需的计算资源较少、耗时较短,从而可以快速实现对待过滤对象的过滤。
48、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
1.一种对象过滤方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述获取根据所述多个待过滤对象的属性生成的多个二进制位集之前,所述方法还包括:
3.根据权利要求2所述的方法,其特征在于,在所述得到多个所述二进制位集之后,所述方法还包括:
4.根据权利要求2所述的方法,其特征在于,在所述二进制位集的比特位数等于所述多个待过滤对象的数量的情况下,在所述得到多个所述二进制位集之后,所述方法还包括:
5.根据权利要求2所述的方法,其特征在于,在所述二进制位集的比特位数大于所述多个待过滤对象的数量的情况下,每个所述二进制位集中存在空闲比特位,所述空闲比特位对应的待过滤对象为空;
6.根据权利要求2所述的方法,其特征在于,在所述得到多个所述二进制位集之后,所述方法还包括:
7.根据权利要求2所述的方法,其特征在于,在所述得到多个所述二进制位集之后,所述方法还包括:
8.根据权利要求2所述的方法,其特征在于,在所述得到多个所述二进制位集之后,所述方法还包括:
9.根据权利要求2所述的方法,其特征在于,在所述得到多个所述二进制位集之后,所述方法还包括:
10.一种对象过滤装置,其特征在于,所述装置包括:
11.一种电子设备,其特征在于,包括:
12.一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至9中任一项所述的对象过滤方法。
13.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序执行时实现如权利要求1至9中任一项所述的对象过滤方法。
