一种布隆过滤器的生成方法技术

技术编号:20484725 阅读:32 留言:0更新日期:2019-03-02 18:54
本发明专利技术涉及元素查询匹配的算法技术领域,具体涉及一种布隆过滤器的生成方法,包括确定一个散列函数作为分组散列函数、根据所述分组散列函数,将所述布隆过滤器表示的数据元素集合分为M个子集合、确定每一个子集合对应的位向量长度Li和散列函数个数Ni。本发明专利技术生成的布隆过滤器,当布隆过滤器表示的集合中需要增加或删除一个元素时,只需要根据分组散列函数确定该元素的对应的子集合,重建该子集合的位向量,能够避免传统的布隆过滤器在增加或删除元素时,需要重建整个布隆过滤器的位向量,节省重建开销。

【技术实现步骤摘要】
一种布隆过滤器的生成方法
本专利技术涉及元素查询匹配的算法
,具体涉及一种布隆过滤器的生成方法。
技术介绍
在日常生活中,包括在设计计算机软件时,我们经常要判断一个元素是否在一个集合中。比如在字处理软件中,需要检查一个英语单词是否拼写正确(也就是要判断它是否在已知的字典中);在FBI,一个嫌疑人的名字是否已经在嫌疑名单上;在网络爬虫里,一个网址是否被访问过等等。最直接的方法就是将集合中全部的元素存在计算机中,遇到一个新元素时,将它和集合中的元素直接比较即可。一般来讲,计算机中的集合是用哈希表(hashtable)来存储的。它的好处是快速准确,缺点是费存储空间。当集合比较小时,这个问题不显著,但是当集合巨大时,哈希表存储效率低的问题就显现出来了,我们需要寻求更好的解决方法。布隆过滤器(BloomFilter)是1970年由布隆提出的一种空间空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并判断一个元素是否属于这个集合。使用布隆过滤器,存在第一类出错(Falsepositive),但是不会存在第二类错误(Falsenegative),因此,布隆过滤器拥有100%的召回本文档来自技高网...

【技术保护点】
1.一种布隆过滤器的生成方法,其特征在于,包括如下步骤:步骤1、确定一个散列函数作为分组散列函数;步骤2、根据所述分组散列函数,将所述布隆过滤器表示的数据元素集合分为M个子集合;步骤3、确定每一个子集合对应的位向量长度Li和散列函数个数Ni;步骤4、对M个子集合中的每一个子集合执行:根据子集合对应的散列函数个数Ni,选择Ni个散列函数作为子集合的散列函数,以及将子集合中的每一个元素分别根据该子集合的Ni个散列函数确定Ni个散列值,将Ni个散列值对应的位向量的位置设置标识,生成该子集合的位向量;步骤5、生成包含所述分组散列函数,以及M个子集合中每一个子集合的位向量和子集合散列函数的布隆过滤器。

【技术特征摘要】
1.一种布隆过滤器的生成方法,其特征在于,包括如下步骤:步骤1、确定一个散列函数作为分组散列函数;步骤2、根据所述分组散列函数,将所述布隆过滤器表示的数据元素集合分为M个子集合;步骤3、确定每一个子集合对应的位向量长度Li和散列函数个数Ni;步骤4、对M个子集合中的每一个子集合执行:根据子集合对应的散列函数个数Ni,选择Ni个散列函数作为子集合的散列函数,以及将子集合中的每一个元素分别根据该子集合的Ni个散列函数确定Ni个散列值,将Ni个散列值对应的位向量的位置设置标识,生成该子集合的位向量;步骤5、生成包含所述分组散列函数,以及M个子集合中每一个子集合的位向量和子集合散列函数的布隆过滤器。2.根据权利要求1所述的一种布隆过滤器的生成方法,其特征在于,所述步骤2中,具体包括如下步骤:步骤2.1、根据所述分组散列函数确定所述布隆过滤器表示的数据元素集合中每一个元素的分组散列值;步骤2.2、根据每一个元素的分组散...

【专利技术属性】
技术研发人员:周先东齐高华卢志炜孟彦朱静轩
申请(专利权)人:中新网络信息安全股份有限公司
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1