[发明专利]一种二维过滤器的生成方法、查询方法及装置在审

专利信息
申请号: 201410431085.9 申请日: 2014-08-28
公开(公告)号: CN104317795A 公开(公告)日: 2015-01-28
发明(设计)人: 张延松;陈红;李翠平;孙东旺 申请(专利权)人: 华为技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京同达信恒知识产权代理有限公司 11291 代理人: 冯艳莲
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 二维 过滤器 生成 方法 查询 装置
【说明书】:

技术领域

发明涉及元素查询匹配的技术领域,特别是涉及一种二维过滤器的生成、查询方法及装置。

背景技术

在设计计算机软件时,经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);又比如在URL(Universal Resource Locator,统一资源定位符)过滤软件中,判断一个URL是否在过滤名单中等等。最直接的方法就是将集合中的全部元素存储在计算机中,遇到一个新元素时,将它和集合中的元素进行直接比较即可。为了提高查找的速度,通常使用哈希表(Hash Table)来存储集合。哈希表,是一种根据元素的关键码值来快速映射其存储位置的数据结构,这个映射函数也就是通常我们所说的哈希函数。哈希表的结构如图1A所示,集合中的元素首先经过哈希函数得到其哈希位置,然后将元素记录到该位置的哈希链表中。图1A中,假设哈希函数为HASH,并且A1、A2,…A8是集合中的元素,那么从图中可看出HASH(A1)=HASH(A2)=H1,HASH(A3)=HASH(A4)=H2,HASH(A5)=HASH(A6)=H3,HASH(A7)=HASH(A8)=H4。

哈希表的好处是能够快速准确的判断元素是否在集合中,缺点就是需要较大的存储空间。为了节省存储空间,一维布隆过滤器由巴顿布隆于一九七零年提出,其原理如下:一个一维布隆过滤器由k个相互独立的哈希函数h1,h2,……,hk和一个长度为m的位向量组成,其中,每个哈希函数的值域均为{0,1,……,m-1},又因为一个字节有8个比特位,因此位向量实际占的内存空间为m/8个字节,位向量的所有的位均初始化为0。集合S={s1,s2,……,sn},用k个哈希函数对集合S中的每一个元素计算一个哈希序列(h1(s),h2(s),……,hk(s)),然后将位向量中对应的哈希序列位设为1,则称该布隆过滤器装入了数据元素集合S,或者说该布隆过滤器表示了数据元素集合S。例如若h1(s1)=5,则将位向量的第6位设为1,h2(s1)=10,则将位向量的第11位设为1,直到hk(s1)=n-1,将位向量的第n位设为1,则称布隆过滤器中装入了数据元素s1,当集合S中的每一个数据元素均装入布隆过滤器中,则称布隆过滤器表示了数据元素集合S。当查询某个数据元素是否在集合S中时,用同样的k个哈希函数对数据元素计算一个哈希序列,如果哈希序列所对应的位向量上的每一位均为1,则认为该数据元素属于S,否则不属于S。与完全存储数据相比,采用布隆过滤器,能够节省存储空间,使用布隆过滤器绝不会漏掉任何一个属于集合中的元素。

下面结合垃圾Email地址的例子,对布隆过滤器做一个简单的描述。

假定垃圾Email地址的数量有一亿个,先建立一个长度为十六亿比特的位向量,即两亿字节的向量,然后将这十六亿个二进制位全部初始化为零。对于每一个已知的垃圾Email地址,用八个不同的哈希函数(F1,F2,……,F8)产生八个哈希值(f1,f2,……,f8),将这八个哈希值对应的位向量的位置全部置1。将这一亿个垃圾Email地址都进行这样的处理后,一个针对这些垃圾Email地址的布隆过滤器就生成了。如图1B所示,为某一个垃圾Email地址采用布隆过滤器表示的示例图,对于垃圾Email地址XXX@163.com,采用八个不同的哈希函数(F1,F2,……,F8)产生八个哈希值(f1,f2,……,f8),将这八个哈希值对应的位向量的位置全部置1,则称布隆过滤器中装入了该垃圾邮件地址。

以上生成的布隆过滤器是针对一个键值元素组的,也就是说,一个布隆过滤器只能与一个键值元素组相链接,有几个键值元素组就要生成几个布隆过滤器,因此,存在布隆过滤器灵活性较差的缺陷。

发明内容

本发明实施例提供一种二维过滤器的生成、查询方法及装置,用以提高布隆过滤器的灵活性。

本发明实施例提供的具体技术方案如下:

第一方面,提供一种二维过滤器的生成方法,包括:

建立包括至少两个行向量和至少两个列向量的二维矩阵;

确定哈希函数集合,其中,所述哈希函数集合中的每一个哈希函数与至少一个键值元素组相对应,所述哈希函数集合中的任一哈希函数对对应的至少一个键值元素组中的任一键值元素的第一子键值元素进行哈希运算得到第一哈希值、对所述任一键值元素的第二子键值元素进行哈希运算得到第二哈希值,所述第一哈希值为小于或等于所述行向量的长度的正整数,所述第二哈希值为小于或等于所述列向量的长度的正整数;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410431085.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top