## org.apache.lucene.codecs
Class MultiLevelSkipListReader

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

All Implemented Interfaces:
  Closeable

Direct Known Subclasses:
  Lucene40SkipListReader

    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
`protected int` `maxNumberOfSkipLevels` the maximum number of skip levels possible for this index
`protected int[]` `skipDoc` Doc id of current skip entry per level.

Constructor Summary
`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
`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 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

### 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`
  Throws:
    `IOException`

### init

    public void init(long skipPointer,
                     int df)

  Initializes the reader, for reuse on a new term.

### 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`

### setLastSkipData

    protected void setLastSkipData(int level)

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

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