Class GroupVIntUtil

java.lang.Object
org.apache.lucene.util.GroupVIntUtil

public final class GroupVIntUtil extends Object
This class contains utility methods and constants for group varint
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
  • Field Details

  • Constructor Details

    • GroupVIntUtil

      public GroupVIntUtil()
  • Method Details

    • readGroupVInts

      public static void readGroupVInts(DataInput in, long[] dst, int limit) throws IOException
      Read all the group varints, including the tail vints. we need a long[] because this is what postings are using, all longs are actually required to be integers.
      Parameters:
      dst - the array to read ints into.
      limit - the number of int values to read.
      Throws:
      IOException
      WARNING: This API is experimental and might change in incompatible ways in the next release.
    • readGroupVInts

      public static void readGroupVInts(DataInput in, int[] dst, int limit) throws IOException
      Read all the group varints, including the tail vints.
      Parameters:
      dst - the array to read ints into.
      limit - the number of int values to read.
      Throws:
      IOException
      WARNING: This API is experimental and might change in incompatible ways in the next release.
    • readGroupVInt

      public static void readGroupVInt(DataInput in, long[] dst, int offset) throws IOException
      Default implementation of read single group, for optimal performance, you should use readGroupVInts(DataInput, long[], int) instead.
      Parameters:
      in - the input to use to read data.
      dst - the array to read ints into.
      offset - the offset in the array to start storing ints.
      Throws:
      IOException
    • readGroupVInt

      public static void readGroupVInt(DataInput in, int[] dst, int offset) throws IOException
      Default implementation of read single group, for optimal performance, you should use readGroupVInts(DataInput, int[], int) instead.
      Parameters:
      in - the input to use to read data.
      dst - the array to read ints into.
      offset - the offset in the array to start storing ints.
      Throws:
      IOException
    • readGroupVInt

      public static int readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, long[] dst, int offset) throws IOException
      Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
      Parameters:
      in - the input to use to read data.
      remaining - the number of remaining bytes allowed to read for current block/segment.
      reader - the supplier of read int.
      pos - the start pos to read from the reader.
      dst - the array to read ints into.
      offset - the offset in the array to start storing ints.
      Returns:
      the number of bytes read excluding the flag. this indicates the number of positions should to be increased for caller, it is 0 or positive number and less than MAX_LENGTH_PER_GROUP
      Throws:
      IOException
    • readGroupVInt

      public static int readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, int[] dst, int offset) throws IOException
      Faster implementation of read single group, It read values from the buffer that would not cross boundaries.
      Parameters:
      in - the input to use to read data.
      remaining - the number of remaining bytes allowed to read for current block/segment.
      reader - the supplier of read int.
      pos - the start pos to read from the reader.
      dst - the array to read ints into.
      offset - the offset in the array to start storing ints.
      Returns:
      the number of bytes read excluding the flag. this indicates the number of positions should to be increased for caller, it is 0 or positive number and less than MAX_LENGTH_PER_GROUP
      Throws:
      IOException
    • writeGroupVInts

      public static void writeGroupVInts(DataOutput out, byte[] scratch, long[] values, int limit) throws IOException
      The implementation for group-varint encoding, It uses a maximum of MAX_LENGTH_PER_GROUP bytes scratch buffer.
      Throws:
      IOException
    • writeGroupVInts

      public static void writeGroupVInts(DataOutput out, byte[] scratch, int[] values, int limit) throws IOException
      The implementation for group-varint encoding, It uses a maximum of MAX_LENGTH_PER_GROUP bytes scratch buffer.
      Throws:
      IOException