Google guava有一个经典布隆过滤器的实现。创建一个涉及指定插入次数和预期的误报概率。我想知道提供的putAll函数是否可以用来创建一个新的过滤器,允许比传递给它的bloom过滤器参数更多的插入,同时保留相同的fpp。
答案 0 :(得分:1)
没有。它不会。
根据javadoc,putAll
函数在过滤器不兼容时抛出异常。如果两个布隆过滤器具有相同数量的散列函数,则它们是兼容的;具有相同的位大小;有相同的策略;有相同的漏斗。
散列函数和bitsize的数量来自插入次数和fpp速率。使用相同的fpp和更大的插入次数创建一个新的bloom过滤器将导致不同的bitsize和散列函数的数量。