public abstract class ChunksIntEncoder extends IntEncoder
IntEncoderwhich encodes values in chunks. Implementations of this class assume the data which needs encoding consists of small, consecutive values, and therefore the encoder is able to compress them better. You can read more on the two implementations
Extensions of this class need to implement
in order to build the proper indicator (flags). When enough values were
accumulated (typically the batch size), extensions can call
encodeChunk(BytesRef) to flush the indicator and the rest of the
NOTE: flags encoders do not accept values ≤ 0 (zero) in their
IntEncoder.encode(IntsRef, BytesRef). For performance reasons they do not check
that condition, however if such value is passed the result stream may be
corrupt or an exception will be thrown. Also, these encoders perform the best
when there are many consecutive small values (depends on the encoder
implementation). If that is not the case, the encoder will occupy 1 more byte
for every batch number of integers, over whatever
VInt8IntEncoder would have occupied. Therefore make sure to check
whether your data fits into the conditions of the specific encoder.
|Modifier and Type||Field and Description|
Holds the values which must be encoded, outside the indicator.
Represents bits flag byte.
Counts the current ordinal of the encoded value.
|Modifier||Constructor and Description|
|Modifier and Type||Method and Description|
Encodes the values of the current chunk.
protected final IntsRef encodeQueue
protected int indicator
protected byte ordinal
protected void encodeChunk(BytesRef buf)
Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.