Class LegacyDirectMonotonicWriter
- java.lang.Object
-
- org.apache.lucene.backward_codecs.packed.LegacyDirectMonotonicWriter
-
public final class LegacyDirectMonotonicWriter extends java.lang.ObjectWrite monotonically-increasing sequences of integers. This writer splits data into blocks and then for each block, computes the average slope, the minimum value and only encode the delta from the expected value using aLegacyDirectWriter.- See Also:
LegacyDirectMonotonicReader
-
-
Field Summary
Fields Modifier and Type Field Description (package private) longbaseDataPointer(package private) long[]buffer(package private) intbufferSize(package private) longcount(package private) IndexOutputdata(package private) booleanfinishedstatic intMAX_BLOCK_SHIFTmax block shift(package private) IndexOutputmetastatic intMIN_BLOCK_SHIFTmin block shift(package private) longnumValues(package private) longprevious
-
Constructor Summary
Constructors Constructor Description LegacyDirectMonotonicWriter(IndexOutput metaOut, IndexOutput dataOut, long numValues, int blockShift)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(long v)Write a new value.voidfinish()This must be called exactly once after all values have beenadded.private voidflush()static LegacyDirectMonotonicWritergetInstance(IndexOutput metaOut, IndexOutput dataOut, long numValues, int blockShift)Returns an instance suitable for encodingnumValuesinto monotonic blocks of 2blockShiftvalues.
-
-
-
Field Detail
-
MIN_BLOCK_SHIFT
public static final int MIN_BLOCK_SHIFT
min block shift- See Also:
- Constant Field Values
-
MAX_BLOCK_SHIFT
public static final int MAX_BLOCK_SHIFT
max block shift- See Also:
- Constant Field Values
-
meta
final IndexOutput meta
-
data
final IndexOutput data
-
numValues
final long numValues
-
baseDataPointer
final long baseDataPointer
-
buffer
final long[] buffer
-
bufferSize
int bufferSize
-
count
long count
-
finished
boolean finished
-
previous
long previous
-
-
Constructor Detail
-
LegacyDirectMonotonicWriter
LegacyDirectMonotonicWriter(IndexOutput metaOut, IndexOutput dataOut, long numValues, int blockShift)
-
-
Method Detail
-
flush
private void flush() throws java.io.IOException- Throws:
java.io.IOException
-
add
public void add(long v) throws java.io.IOExceptionWrite a new value. Note that data might not make it to storage untilfinish()is called.- Throws:
java.lang.IllegalArgumentException- if values don't come in orderjava.io.IOException
-
finish
public void finish() throws java.io.IOExceptionThis must be called exactly once after all values have beenadded.- Throws:
java.io.IOException
-
getInstance
public static LegacyDirectMonotonicWriter getInstance(IndexOutput metaOut, IndexOutput dataOut, long numValues, int blockShift)
Returns an instance suitable for encodingnumValuesinto monotonic blocks of 2blockShiftvalues. Metadata will be written tometaOutand actual data todataOut.
-
-