Package org.apache.lucene.util.packed
Class DirectWriter
java.lang.Object
org.apache.lucene.util.packed.DirectWriter
Class for writing packed integers to be directly read from Directory. Integers can be read
on-the-fly via
DirectReader
.
Unlike PackedInts, it optimizes for read i/o operations and supports > 2B values. Example usage:
int bitsPerValue = DirectWriter.bitsRequired(100); // values up to and including 100 IndexOutput output = dir.createOutput("packed", IOContext.DEFAULT); DirectWriter writer = DirectWriter.getInstance(output, numberOfValues, bitsPerValue); for (int i = 0; i < numberOfValues; i++) { writer.add(value); } writer.finish(); output.close();
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
add
(long l) Adds a value to this writerstatic int
bitsRequired
(long maxValue) Returns how many bits are required to hold values up to and including maxValuevoid
finish()
finishes writingstatic DirectWriter
getInstance
(DataOutput output, long numValues, int bitsPerValue) Returns an instance suitable for encodingnumValues
usingbitsPerValue
static int
unsignedBitsRequired
(long maxValue) Returns how many bits are required to hold values up to and including maxValue, interpreted as an unsigned value.
-
Method Details
-
add
Adds a value to this writer- Throws:
IOException
-
finish
finishes writing- Throws:
IOException
-
getInstance
Returns an instance suitable for encodingnumValues
usingbitsPerValue
-
bitsRequired
public static int bitsRequired(long maxValue) Returns how many bits are required to hold values up to and including maxValue- Parameters:
maxValue
- the maximum value that should be representable.- Returns:
- the amount of bits needed to represent values from 0 to maxValue.
- See Also:
-
unsignedBitsRequired
public static int unsignedBitsRequired(long maxValue) Returns how many bits are required to hold values up to and including maxValue, interpreted as an unsigned value.- Parameters:
maxValue
- the maximum value that should be representable.- Returns:
- the amount of bits needed to represent values from 0 to maxValue.
- See Also:
-