From f42bac45854b149735e8338f25c19c91ca4ecd0f Mon Sep 17 00:00:00 2001
From: Gary Gregory The architecture is designed so that the implementation of the storage of bits is abstracted. Rather than specifying a
- * specific state representation we require that all Bloom filters implement the {@link BitMapExtractor} and {@link IndexExtractor} interfaces,
- * Counting-based Bloom filters implement {@link CellExtractor} as well. There are static
+ * specific state representation we require that all Bloom filters implement the {@link org.apache.commons.collections4.bloomfilter.BitMapExtractor} and {@link org.apache.commons.collections4.bloomfilter.IndexExtractor} interfaces,
+ * Counting-based Bloom filters implement {@link org.apache.commons.collections4.bloomfilter.CellExtractor} as well. There are static
* methods in the various Extractor interfaces to convert from one type to another. Programs that utilize the Bloom filters may use the {@link BitMapExtractor} or {@link IndexExtractor} to retrieve
+ * Programs that utilize the Bloom filters may use the {@link org.apache.commons.collections4.bloomfilter.BitMapExtractor} or {@link org.apache.commons.collections4.bloomfilter.IndexExtractor} to retrieve
* or process a representation of the internal structure.
- * Additional methods are available in the {@link BitMaps} class to assist in manipulation of bit map representations.Implementation Notes
*
*
The Bloom filter is an interface that requires implementation of 9 methods:
*The {@link CountingBloomFilter} extends the Bloom filter by counting the number of times a specific bit has been + *
The {@link org.apache.commons.collections4.bloomfilter.CountingBloomFilter} extends the Bloom filter by counting the number of times a specific bit has been * enabled or disabled. This allows the removal (opposite of merge) of Bloom filters at the expense of additional * overhead.
* *The {@link LayeredBloomFilter} extends the Bloom filter by creating layers of Bloom filters that can be queried as a single + *
The {@link org.apache.commons.collections4.bloomfilter.LayeredBloomFilter} extends the Bloom filter by creating layers of Bloom filters that can be queried as a single * Filter or as a set of filters. This adds the ability to perform windowing on streams of data.
* *The {@link Shape} describes the Bloom filter using the number of bits and the number of hash functions. It can be specified + *
The {@link org.apache.commons.collections4.bloomfilter.Shape} describes the Bloom filter using the number of bits and the number of hash functions. It can be specified * by the number of expected items and desired false positive rate.
* *A {@link Hasher} converts bytes into a series of integers based on a Shape. Each hasher represents one item being added + *
A {@link org.apache.commons.collections4.bloomfilter.Hasher} converts bytes into a series of integers based on a Shape. Each hasher represents one item being added * to the Bloom filter.
* - *The {@link EnhancedDoubleHasher} uses a combinatorial generation technique to create the integers. It is easily + *
The {@link org.apache.commons.collections4.bloomfilter.EnhancedDoubleHasher} uses a combinatorial generation technique to create the integers. It is easily * initialized by using a byte array returned by the standard {@link java.security.MessageDigest} or other hash function to * initialize the Hasher. Alternatively, a pair of a long values may also be used.
* - *Other implementations of the {@link Hasher} are easy to implement, and should make use of the {@code Hasher.Filter} + *
Other implementations of the {@link org.apache.commons.collections4.bloomfilter.Hasher} are easy to implement, and should make use of the {@code Hasher.Filter} * and/or {@code Hasher.FileredIntConsumer} classes to filter out duplicate indices when implementing * {@code Hasher.uniqueIndices(Shape)}.
*