Вот некоторые основные сведения о фильтре Bloom
Может ли кто-нибудь объяснить мне, как мы можем преобразовать хеш-функцию (скажем, md5, sha1 или любую другую предопределенную хеш-функцию) в целочисленное значение в диапазоне от 0 до m, где m - битовый диапазон фильтра Блума.
Я хочу знать, как мы можем получить значение из хеш-функции в определенном диапазоне, которое я могу использовать для индексации в фильтрах цветения.
До сих пор я сослался на:
1. Использование хэш-функций с фильтрами Блума,
2. Как сопоставить вывод хэш-функции с индексами bloomfilter? и
http://billmill.org/bloomfilter-tutorial/
Но во всех этих примерах не приводится, а в последнем они использовали javascript, а в этих Jenkins 96 bit mix function
и 2 хэш-функциях fnv
и murmur
, что довольно сложно понять.
Я понял, что мы делим значение хэш-функции, например: используя md5 "0cc175b9c0f1b6a831c399e269772661"
, и мы делим его на куски по 4 бита или любое количество битов для 4-битного деления, мы делаем «0cc1», «75b9», но что после этого?
Я не мог понять, что мы делаем после этого шага и как мы устанавливаем диапазон, чтобы он не превышал размер ARRAY фильтра Bloom.
Может ли кто-нибудь предоставить мне живой базовый пример на языке php или c ++?
Я знаю, что md5 - это не функция, которую вы должны использовать в цветных фильтрах, но мне просто нужно понять, как мы это делаем.
1000
битовые фильтры цветения, это создает некоторые проблемы, потому что он формирует 2 ^ 32-1 битные значения, которые значительно больше 1000, поэтому мы должны использовать модуль%, чтобы уменьшить это значение. У вас есть живой пример того, как мы сопоставляем индекс и диапазон фильтра цветения? - person RAJAT SHARMA   schedule 28.08.2015