2011-05-24 31 views
5

我明白是什麼讓布魯姆過濾了一個有吸引力的數據結構;但是,我發現很難真正理解何時可以使用它們,因爲您仍然必須執行您試圖避免的昂貴操作,以確定您沒有發現誤報。正因爲如此,他們通常只會增加很多開銷?例如,用於bloom過濾器的維基百科文章表明它們可以用於數據同步。我看到布隆過濾器是空的時候,第一次看到它會是什麼樣子,但是說你沒有改變任何東西,然後再次同步你的數據。現在,對bloom過濾器的每個查詢都會報告文件已被複制,但是我們是否還必須執行我們試圖避免的較慢查找任務以確保其正確性?布盧姆過濾器何時有用?

+0

同伴堆棧器[詢問了關於第一手布隆過濾器應用](http://stackoverflow.com/questions/3075301/what-problems-have-you-solved-using-bloom-filters),你可能會發現有趣的脫脂。 – sarnold 2011-05-25 00:12:13

+0

其他問題已被刪除:-( – Spaceghost 2013-06-15 02:03:19

回答

5

基本上,您使用Bloom過濾器來避免證明項目在數據結構中不存在的漫長而艱鉅的任務。幾乎總是很難確定是否缺少某些東西,比如它是否存在,所以過濾器有助於增加損失,尋找你不會找到的東西。它並不總是有效,但是當它獲得巨大收益時。

+0

好吧,我有點想到這是這樣的事情,但這有助於鞏固這一點,謝謝。 – blcArmadillo 2011-05-25 00:05:20

0

布魯姆過濾器在會員查詢的情況下非常有效,即查明元素是否屬於該集合。該集合中元素的數量不會影響查詢性能。