Package org.apache.lucene.util.packed
Class GrowableWriter
- java.lang.Object
-
- org.apache.lucene.index.NumericDocValues
-
- org.apache.lucene.util.packed.PackedInts.Reader
-
- org.apache.lucene.util.packed.PackedInts.Mutable
-
- org.apache.lucene.util.packed.GrowableWriter
-
public class GrowableWriter extends PackedInts.Mutable
ImplementsPackedInts.Mutable
, but grows the bit count of the underlying packed ints on-demand.Beware that this class will accept to set negative values but in order to do this, it will grow the number of bits per value to 64.
@lucene.internal
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.index.NumericDocValues
EMPTY
-
-
Constructor Summary
Constructors Constructor Description GrowableWriter(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Sets all values to 0.void
fill(int fromIndex, int toIndex, long val)
Fill the mutable fromfromIndex
(inclusive) totoIndex
(exclusive) withval
.long
get(int index)
Returns the numeric value for the specified document ID.int
get(int index, long[] arr, int off, int len)
Bulk get: read at least one and at mostlen
longs starting fromindex
intoarr[off:off+len]
and return the actual number of values that have been read.java.lang.Object
getArray()
Expert: if the bit-width of this reader matches one of java's native types, returns the underlying array (ie, byte[], short[], int[], long[]); else, returns null.int
getBitsPerValue()
PackedInts.Mutable
getMutable()
boolean
hasArray()
Returns true if this implementation is backed by a native java array.long
ramBytesUsed()
Return the in-memory size in bytes.GrowableWriter
resize(int newSize)
void
save(DataOutput out)
Save this mutable intoout
.void
set(int index, long value)
Set the value at the given index in the array.int
set(int index, long[] arr, int off, int len)
Bulk set: set at least one and at mostlen
longs starting atoff
inarr
into this mutable, starting atindex
.int
size()
-
-
-
Constructor Detail
-
GrowableWriter
public GrowableWriter(int startBitsPerValue, int valueCount, float acceptableOverheadRatio)
- Parameters:
startBitsPerValue
- the initial number of bits per value, may grow depending on the datavalueCount
- the number of valuesacceptableOverheadRatio
- an acceptable overhead ratio
-
-
Method Detail
-
get
public long get(int index)
Description copied from class:NumericDocValues
Returns the numeric value for the specified document ID.- Specified by:
get
in classNumericDocValues
- Parameters:
index
- document ID to lookup- Returns:
- numeric value
-
size
public int size()
- Specified by:
size
in classPackedInts.Reader
- Returns:
- the number of values.
-
getBitsPerValue
public int getBitsPerValue()
- Specified by:
getBitsPerValue
in classPackedInts.Reader
- Returns:
- the number of bits used to store any given value.
Note: This does not imply that memory usage is
bitsPerValue * #values
as implementations are free to use non-space-optimal packing of bits.
-
getMutable
public PackedInts.Mutable getMutable()
-
getArray
public java.lang.Object getArray()
Description copied from class:PackedInts.Reader
Expert: if the bit-width of this reader matches one of java's native types, returns the underlying array (ie, byte[], short[], int[], long[]); else, returns null. Note that when accessing the array you must upgrade the type (bitwise AND with all ones), to interpret the full value as unsigned. Ie, bytes[idx]&0xFF, shorts[idx]&0xFFFF, etc.- Overrides:
getArray
in classPackedInts.Reader
-
hasArray
public boolean hasArray()
Description copied from class:PackedInts.Reader
Returns true if this implementation is backed by a native java array.- Overrides:
hasArray
in classPackedInts.Reader
- See Also:
PackedInts.Reader.getArray()
-
set
public void set(int index, long value)
Description copied from class:PackedInts.Mutable
Set the value at the given index in the array.- Specified by:
set
in classPackedInts.Mutable
- Parameters:
index
- where the value should be positioned.value
- a value conforming to the constraints set by the array.
-
clear
public void clear()
Description copied from class:PackedInts.Mutable
Sets all values to 0.- Overrides:
clear
in classPackedInts.Mutable
-
resize
public GrowableWriter resize(int newSize)
-
get
public int get(int index, long[] arr, int off, int len)
Description copied from class:PackedInts.Reader
Bulk get: read at least one and at mostlen
longs starting fromindex
intoarr[off:off+len]
and return the actual number of values that have been read.- Overrides:
get
in classPackedInts.Reader
-
set
public int set(int index, long[] arr, int off, int len)
Description copied from class:PackedInts.Mutable
Bulk set: set at least one and at mostlen
longs starting atoff
inarr
into this mutable, starting atindex
. Returns the actual number of values that have been set.- Overrides:
set
in classPackedInts.Mutable
-
fill
public void fill(int fromIndex, int toIndex, long val)
Description copied from class:PackedInts.Mutable
Fill the mutable fromfromIndex
(inclusive) totoIndex
(exclusive) withval
.- Overrides:
fill
in classPackedInts.Mutable
-
ramBytesUsed
public long ramBytesUsed()
Description copied from class:PackedInts.Reader
Return the in-memory size in bytes.- Specified by:
ramBytesUsed
in classPackedInts.Reader
-
save
public void save(DataOutput out) throws java.io.IOException
Description copied from class:PackedInts.Mutable
Save this mutable intoout
. Instantiating a reader from the generated data will return a reader with the same number of bits per value.- Overrides:
save
in classPackedInts.Mutable
- Throws:
java.io.IOException
-
-