說到 Bloomier Filter,看倌一定會覺得看起來和 Bloom Filter 很像(詳情請看 Bloom Filter )。 是的,而且兩者演算法本身確實也有相似之處,不過用途並不相同。
Bloom Filter 可以紀錄「某一個元素是否存在」這種型態的資料, 我們可以利用這種資料結構來查詢某元素是否存在的資訊,如查詢「某小雞是不是在這一間雞舍?」這種訊息。 雖然 Bloom Filter 的結果不準確,可能發生「明明不存在,卻回報存在」的狀況,但因為所佔空間小, 而且搜尋速度快的特性,所以常用來做前期的篩選。
但 Bloomier Filter 不同,它不會放棄資料的正確性,而且不像 Bloom Filter 只能存「某一個元素是否存在」的資訊, 因此可以當作實際存放資料的地方,是故 Bloomier Filter 雖然稱作 Filter,但並不只能做 Filter 的事。
Continue reading