Class EliasFanoDocIdSet


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

      • 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 Detail

      • 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 java.io.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:
        java.io.IOException
      • isCacheable

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

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object