org.apache.lucene.codecs

## Class MultiLevelSkipListReader

- java.lang.Object
- - org.apache.lucene.codecs.MultiLevelSkipListReader

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public abstract class MultiLevelSkipListReader
      extends Object
      implements Closeable

  This abstract class reads skip lists with multiple levels. See `MultiLevelSkipListWriter` for the information about the encoding of the multi level skip lists. Subclasses must implement the abstract method `readSkipData(int, IndexInput)` which defines the actual format of the skip data.
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `maxNumberOfSkipLevels` the maximum number of skip levels possible for this index
    `protected int` | `numberOfSkipLevels` number of levels in this skip list
    `protected int[]` | `skipDoc` Doc id of current skip entry per level.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `MultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval)` Creates a `MultiLevelSkipListReader`, where `skipInterval` and `skipMultiplier` are the same.
    `protected` | `MultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval, int skipMultiplier)` Creates a `MultiLevelSkipListReader`.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()`
    `int` | `getDoc()` Returns the id of the doc to which the last call of `skipTo(int)` has skipped.
    `void` | `init(long skipPointer, int df)` Initializes the reader, for reuse on a new term.
    `protected long` | `readChildPointer(IndexInput skipStream)` read the child pointer written via `MultiLevelSkipListWriter.writeChildPointer(long, DataOutput)`.
    `protected long` | `readLevelLength(IndexInput skipStream)` read the length of the current level written via `MultiLevelSkipListWriter.writeLevelLength(long, IndexOutput)`.
    `protected abstract int` | `readSkipData(int level, IndexInput skipStream)` Subclasses must implement the actual skip data encoding in this method.
    `protected void` | `seekChild(int level)` Seeks the skip entry on the given level
    `protected void` | `setLastSkipData(int level)` Copies the values of the last read skip entry on this level
    `int` | `skipTo(int target)` Skips entries to the first beyond the current whose document number is greater than or equal to target.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### maxNumberOfSkipLevels

          protected int maxNumberOfSkipLevels

      the maximum number of skip levels possible for this index

    - #### numberOfSkipLevels

          protected int numberOfSkipLevels

      number of levels in this skip list

    - #### skipDoc

          protected int[] skipDoc

      Doc id of current skip entry per level.

  - ### Constructor Detail

    - #### MultiLevelSkipListReader

          protected MultiLevelSkipListReader(IndexInput skipStream,
                                             int maxSkipLevels,
                                             int skipInterval,
                                             int skipMultiplier)

      Creates a `MultiLevelSkipListReader`.

    - #### MultiLevelSkipListReader

          protected MultiLevelSkipListReader(IndexInput skipStream,
                                             int maxSkipLevels,
                                             int skipInterval)

      Creates a `MultiLevelSkipListReader`, where `skipInterval` and `skipMultiplier` are the same.

  - ### Method Detail

    - #### getDoc

          public int getDoc()

      Returns the id of the doc to which the last call of `skipTo(int)` has skipped.

    - #### skipTo

          public int skipTo(int target)
                     throws IOException

      Skips entries to the first beyond the current whose document number is greater than or equal to target. Returns the current doc count.
      Throws:
        `IOException`

    - #### seekChild

          protected void seekChild(int level)
                            throws IOException

      Seeks the skip entry on the given level
      Throws:
        `IOException`

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Throws:
        `IOException`

    - #### init

          public void init(long skipPointer,
                           int df)
                    throws IOException

      Initializes the reader, for reuse on a new term.
      Throws:
        `IOException`

    - #### readSkipData

          protected abstract int readSkipData(int level,
                                              IndexInput skipStream)
                                       throws IOException

      Subclasses must implement the actual skip data encoding in this method.
      Parameters:
        `level` - the level skip data shall be read from
        `skipStream` - the skip stream to read from
      Throws:
        `IOException`

    - #### readLevelLength

          protected long readLevelLength(IndexInput skipStream)
                                  throws IOException

      read the length of the current level written via `MultiLevelSkipListWriter.writeLevelLength(long, IndexOutput)`.
      Parameters:
        `skipStream` - the IndexInput the length shall be read from
      Returns:
        level length
      Throws:
        `IOException`

    - #### readChildPointer

          protected long readChildPointer(IndexInput skipStream)
                                   throws IOException

      read the child pointer written via `MultiLevelSkipListWriter.writeChildPointer(long, DataOutput)`.
      Parameters:
        `skipStream` - the IndexInput the child pointer shall be read from
      Returns:
        child pointer
      Throws:
        `IOException`

    - #### setLastSkipData

          protected void setLastSkipData(int level)

      Copies the values of the last read skip entry on this level

Copyright © 2000-2022 Apache Software Foundation. All Rights Reserved.