@InterfaceAudience.LimitedPrivate(value={"HDFS","MapReduce"}) @InterfaceStability.Unstable public abstract class Filter extends 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 and 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 and Description |
|---|---|
protected |
Filter() |
protected |
Filter(int vectorSize,
int nbHash,
int hashType)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(Collection<Key> keys)
Adds a collection 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.
|
void |
add(List<Key> keys)
Adds a list 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(DataInput in)
Deserialize the fields of this object from
in. |
void |
write(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(List<Key> keys)
keys - The list of keys.public void add(Collection<Key> keys)
keys - The collection of keys.public void add(Key[] keys)
keys - The array of keys.public void write(DataOutput out) throws IOException
Writableout.write in interface Writableout - DataOuput to serialize this object into.IOExceptionpublic void readFields(DataInput in) throws 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.IOExceptionCopyright © 2013 Apache Software Foundation. All rights reserved.