WritableBloomFilter, CountingBloomFilter, DynamicBloomFilter@LimitedPrivate({"HDFS","MapReduce"})
@Unstable
public abstract class Filter
extends java.lang.Object
implements Writable
A filter is a data structure which aims at offering a lossy summary of a set A. The
key idea is to map entries of A (also called keys) into several positions
in a vector through the use of several hash functions.
Typically, a filter will be implemented as a Bloom filter (or a Bloom filter extension).
It must be extended in order to define the real behavior.
The general behavior of a key,
A hash function| Modifier and Type | Field | Description |
|---|---|---|
protected HashFunction |
hash |
The hash function used to map a key to several positions in the vector.
|
protected int |
hashType |
Type of hashing function to use.
|
protected int |
nbHash |
The number of hash function to consider.
|
protected int |
vectorSize |
The vector size of this filter.
|
| Modifier | Constructor | Description |
|---|---|---|
protected |
Filter() |
|
protected |
Filter(int vectorSize,
int nbHash,
int hashType) |
Constructor.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
add(java.util.Collection<Key> keys) |
Adds a collection of keys to this filter.
|
void |
add(java.util.List<Key> keys) |
Adds a list of keys to this filter.
|
abstract void |
add(Key key) |
Adds a key to this filter.
|
void |
add(Key[] keys) |
Adds an array of keys to this filter.
|
abstract void |
and(Filter filter) |
Peforms a logical AND between this filter and a specified filter.
|
abstract boolean |
membershipTest(Key key) |
Determines wether a specified key belongs to this filter.
|
abstract void |
not() |
Performs a logical NOT on this filter.
|
abstract void |
or(Filter filter) |
Peforms a logical OR between this filter and a specified filter.
|
void |
readFields(java.io.DataInput in) |
Deserialize the fields of this object from
in. |
void |
write(java.io.DataOutput out) |
Serialize the fields of this object to
out. |
abstract void |
xor(Filter filter) |
Peforms a logical XOR between this filter and a specified filter.
|
protected int vectorSize
protected HashFunction hash
protected int nbHash
protected int hashType
protected Filter()
protected Filter(int vectorSize,
int nbHash,
int hashType)
vectorSize - The vector size of this filter.nbHash - The number of hash functions to consider.hashType - type of the hashing function (see Hash).public abstract void add(Key key)
key - The key to add.public abstract boolean membershipTest(Key key)
key - The key to test.public abstract void and(Filter filter)
Invariant: The result is assigned to this filter.
filter - The filter to AND with.public abstract void or(Filter filter)
Invariant: The result is assigned to this filter.
filter - The filter to OR with.public abstract void xor(Filter filter)
Invariant: The result is assigned to this filter.
filter - The filter to XOR with.public abstract void not()
The result is assigned to this filter.
public void add(java.util.List<Key> keys)
keys - The list of keys.public void add(java.util.Collection<Key> keys)
keys - The collection of keys.public void add(Key[] keys)
keys - The array of keys.public void write(java.io.DataOutput out)
throws java.io.IOException
Writableout.public void readFields(java.io.DataInput in)
throws java.io.IOException
Writablein.
For efficiency, implementations should attempt to re-use storage in the existing object where possible.
readFields in interface Writablein - DataInput to deseriablize this object from.java.io.IOException - any other problem for readFields.Copyright © 2008–2025 Apache Software Foundation. All rights reserved.