Class EliasFanoDocIdSet

java.lang.Object
org.apache.lucene.search.DocIdSet
org.apache.lucene.util.packed.EliasFanoDocIdSet

public class EliasFanoDocIdSet extends DocIdSet
A DocIdSet in Elias-Fano encoding.
  • Constructor Details

    • EliasFanoDocIdSet

      public EliasFanoDocIdSet(int numValues, int upperBound)
      Construct an EliasFanoDocIdSet. For efficient encoding, the parameters should be chosen as low as possible.
      Parameters:
      numValues - At least the number of document ids that will be encoded.
      upperBound - At least the highest document id that will be encoded.
  • Method Details

    • sufficientlySmallerThanBitSet

      public static boolean sufficientlySmallerThanBitSet(long numValues, long upperBound)
      Provide an indication that is better to use an EliasFanoDocIdSet than a FixedBitSet to encode document identifiers.
      Parameters:
      numValues - The number of document identifiers that is to be encoded. Should be non negative.
      upperBound - The maximum possible value for a document identifier. Should be at least numValues.
      Returns:
      See EliasFanoEncoder.sufficientlySmallerThanBitSet(long, long)
    • encodeFromDisi

      public void encodeFromDisi(DocIdSetIterator disi) throws IOException
      Encode the document ids from a DocIdSetIterator.
      Parameters:
      disi - This DocIdSetIterator should provide document ids that are consistent with numValues and upperBound as provided to the constructor.
      Throws:
      IOException
    • iterator

      public DocIdSetIterator iterator()
      Provides a DocIdSetIterator to access encoded document ids.
      Specified by:
      iterator in class DocIdSet
    • isCacheable

      public boolean isCacheable()
      This DocIdSet implementation is cacheable.
      Overrides:
      isCacheable in class DocIdSet
      Returns:
      true
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object