Example #1
0
 /// <summary>
 /// Encode the document ids from a DocIdSetIterator. </summary>
 /// <param name="disi"> This DocIdSetIterator should provide document ids that are consistent
 ///              with <c>numValues</c> and <c>upperBound</c> as provided to the constructor.   </param>
 public virtual void EncodeFromDisi(DocIdSetIterator disi)
 {
     while (efEncoder.numEncoded < efEncoder.numValues)
     {
         int x = disi.NextDoc();
         if (x == DocIdSetIterator.NO_MORE_DOCS)
         {
             throw new ArgumentException("disi: " + disi.ToString() + "\nhas " + efEncoder.numEncoded + " docs, but at least " + efEncoder.numValues + " are required.");
         }
         efEncoder.EncodeNext(x);
     }
 }
 private static EliasFanoEncoder MakeEncoder(long[] values, long indexInterval)
 {
     long upperBound = -1L;
     foreach (long value in values)
     {
         Assert.IsTrue(value >= upperBound); // test data ok
         upperBound = value;
     }
     EliasFanoEncoder efEncoder = new EliasFanoEncoder(values.Length, upperBound, indexInterval);
     foreach (long value in values)
     {
         efEncoder.EncodeNext(value);
     }
     return efEncoder;
 }
Example #3
0
        private static EliasFanoEncoder MakeEncoder(long[] values, long indexInterval)
        {
            long upperBound = -1L;

            foreach (long value in values)
            {
                Assert.IsTrue(value >= upperBound); // test data ok
                upperBound = value;
            }
            EliasFanoEncoder efEncoder = new EliasFanoEncoder(values.Length, upperBound, indexInterval);

            foreach (long value in values)
            {
                efEncoder.EncodeNext(value);
            }
            return(efEncoder);
        }