我理解是什么使得bloom过滤器具有吸引力的数据结构;然而,我发现很难真正理解你什么时候可以使用它们,因为你仍然必须执行昂贵的操作,你试图避免确定你没有发现误报。因为这不是他们通常只会增加很多开销吗?例如,针对布隆过滤器的维基百科文章表明它们可用于数据同步。我看到第一次布隆过滤器是空的但是说你没有改变任何东西并再次同步你的数据时会有多好。现在每次查找布隆过滤器都会报告文件已被复制,但是我们是否仍然需要执行我们试图避免的较慢查找任务以确保其正确无误?
答案 0 :(得分:5)
基本上,您使用Bloom过滤器来避免长期而艰巨的任务,证明数据结构中不存在项目。几乎总是很难确定某些东西是否丢失,而不是存在,所以过滤器有助于弥补损失,搜索你无法找到的东西。它并不总是有效,但是当它带来巨大好处时。
答案 1 :(得分:0)
布隆过滤器在成员资格查询的情况下非常有效,即,找出元素是否属于该集合。集合中的元素数量不会影响查询性能。