/// <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; }
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); }