番石榴布隆过滤器插入后的预期误报率很高
guava bloom filter hight expected false positive percent after insertions
我尝试将大量多头插入布隆过滤器并以低错误率检查它们。构造函数向我保证插入次数的预期百分比,但在所有插入之后,新的预期百分比不同且非常高。
BloomFilter<Long> longBloomFilter = BloomFilter.create(Funnels.longFunnel(), 258112656, Math.pow(10, -8));
for (int i = 0; i < 258112656; i++) {
longBloomFilter.put((long) i);
}
System.out.println(longBloomFilter.expectedFpp());
打印 0.17
我不太相信布隆过滤器可以给出如此大的错误率,但为什么前后的期望如此不同?
我强烈怀疑您使用的是过时版本的 Guava。当我使用 Guava 18.0 运行 你的代码时,我得到 1.001370499582369E-8
,这是一个非常合理的输出。
我尝试将大量多头插入布隆过滤器并以低错误率检查它们。构造函数向我保证插入次数的预期百分比,但在所有插入之后,新的预期百分比不同且非常高。
BloomFilter<Long> longBloomFilter = BloomFilter.create(Funnels.longFunnel(), 258112656, Math.pow(10, -8));
for (int i = 0; i < 258112656; i++) {
longBloomFilter.put((long) i);
}
System.out.println(longBloomFilter.expectedFpp());
打印 0.17
我不太相信布隆过滤器可以给出如此大的错误率,但为什么前后的期望如此不同?
我强烈怀疑您使用的是过时版本的 Guava。当我使用 Guava 18.0 运行 你的代码时,我得到 1.001370499582369E-8
,这是一个非常合理的输出。