Package 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
MultiLevelSkipListWriterfor 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 Description protected intmaxNumberOfSkipLevelsthe maximum number of skip levels possible for this indexprotected intnumberOfSkipLevelsnumber of levels in this skip listprotected int[]skipDocDoc id of current skip entry per level.
-
Constructor Summary
Constructors Modifier Constructor Description protectedMultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval)Creates aMultiLevelSkipListReader, whereskipIntervalandskipMultiplierare the same.protectedMultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval, int skipMultiplier)Creates aMultiLevelSkipListReader.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()intgetDoc()Returns the id of the doc to which the last call ofskipTo(int)has skipped.voidinit(long skipPointer, int df)Initializes the reader, for reuse on a new term.protected longreadChildPointer(IndexInput skipStream)read the child pointer written viaMultiLevelSkipListWriter.writeChildPointer(long, DataOutput).protected longreadLevelLength(IndexInput skipStream)read the length of the current level written viaMultiLevelSkipListWriter.writeLevelLength(long, IndexOutput).protected abstract intreadSkipData(int level, IndexInput skipStream)Subclasses must implement the actual skip data encoding in this method.protected voidseekChild(int level)Seeks the skip entry on the given levelprotected voidsetLastSkipData(int level)Copies the values of the last read skip entry on this levelintskipTo(int target)Skips entries to the first beyond the current whose document number is greater than or equal to target.
-
-
-
Constructor Detail
-
MultiLevelSkipListReader
protected MultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval, int skipMultiplier)
Creates aMultiLevelSkipListReader.
-
MultiLevelSkipListReader
protected MultiLevelSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval)
Creates aMultiLevelSkipListReader, whereskipIntervalandskipMultiplierare the same.
-
-
Method Detail
-
getDoc
public int getDoc()
Returns the id of the doc to which the last call ofskipTo(int)has skipped.
-
skipTo
public int skipTo(int target) throws IOExceptionSkips 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 IOExceptionSeeks the skip entry on the given level- Throws:
IOException
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
init
public void init(long skipPointer, int df) throws IOExceptionInitializes the reader, for reuse on a new term.- Throws:
IOException
-
readSkipData
protected abstract int readSkipData(int level, IndexInput skipStream) throws IOExceptionSubclasses must implement the actual skip data encoding in this method.- Parameters:
level- the level skip data shall be read fromskipStream- the skip stream to read from- Throws:
IOException
-
readLevelLength
protected long readLevelLength(IndexInput skipStream) throws IOException
read the length of the current level written viaMultiLevelSkipListWriter.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 viaMultiLevelSkipListWriter.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
-
-