Class Filter

  • All Implemented Interfaces:
    org.apache.hadoop.io.Writable
    Direct Known Subclasses:
    BloomFilter, DynamicBloomFilter

    public abstract class Filter
    extends Object
    implements org.apache.hadoop.io.Writable
    Defines the general behavior of a filter.

    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.

    See Also:
    The general behavior of a key, A hash function
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.hadoop.util.bloom.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.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected Filter()  
      protected Filter​(int vectorSize, int nbHash, int hashType)
      Constructor.
    • Field Detail

      • vectorSize

        protected int vectorSize
        The vector size of this filter.
      • hash

        protected org.apache.hadoop.util.bloom.HashFunction hash
        The hash function used to map a key to several positions in the vector.
      • nbHash

        protected int nbHash
        The number of hash function to consider.
      • hashType

        protected int hashType
        Type of hashing function to use.
    • Constructor Detail

      • Filter

        protected Filter()
      • Filter

        protected Filter​(int vectorSize,
                         int nbHash,
                         int hashType)
        Constructor.
        Parameters:
        vectorSize - The vector size of this filter.
        nbHash - The number of hash functions to consider.
        hashType - type of the hashing function (see Hash).
    • Method Detail

      • add

        public abstract boolean add​(org.apache.hadoop.util.bloom.Key key)
        Adds a key to this filter.
        Parameters:
        key - The key to add.
        Returns:
        true if the key was added, false otherwise.
      • membershipTest

        public abstract boolean membershipTest​(org.apache.hadoop.util.bloom.Key key)
        Determines whether a specified key belongs to this filter.
        Parameters:
        key - The key to test.
        Returns:
        boolean True if the specified key belongs to this filter. False otherwise.
      • and

        public abstract void and​(Filter filter)
        Performs a logical AND between this filter and a specified filter.

        Invariant: The result is assigned to this filter.

        Parameters:
        filter - The filter to AND with.
      • or

        public abstract void or​(Filter filter)
        Performs a logical OR between this filter and a specified filter.

        Invariant: The result is assigned to this filter.

        Parameters:
        filter - The filter to OR with.
      • xor

        public abstract void xor​(Filter filter)
        Performs a logical XOR between this filter and a specified filter.

        Invariant: The result is assigned to this filter.

        Parameters:
        filter - The filter to XOR with.
      • not

        public abstract void not()
        Performs a logical NOT on this filter.

        The result is assigned to this filter.

      • getSerialVersion

        protected int getSerialVersion()
      • getVersion

        protected int getVersion()
      • readFields

        public void readFields​(DataInput in)
                        throws IOException
        Specified by:
        readFields in interface org.apache.hadoop.io.Writable
        Throws:
        IOException