Package org.apache.lucene.codecs
Class MultiLevelSkipListWriter
- java.lang.Object
-
- org.apache.lucene.codecs.MultiLevelSkipListWriter
-
public abstract class MultiLevelSkipListWriter extends java.lang.Object
This abstract class writes skip lists with multiple levels.Example for skipInterval = 3: c (skip level 2) c c c (skip level 1) x x x x x x x x x x (skip level 0) d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d (posting list) 3 6 9 12 15 18 21 24 27 30 (df) d - document x - skip data c - skip data with child pointer Skip level i contains every skipInterval-th entry from skip level i-1. Therefore the number of entries on level i is: floor(df / ((skipInterval ^ (i + 1))). Each skip entry on a level i>0 contains a pointer to the corresponding skip entry in list i-1. This guarantees a logarithmic amount of skips to find the target document. While this class takes care of writing the different skip levels, subclasses must define the actual format of the skip data.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bufferSkip(int df)
Writes the current skip data to the buffers.long
writeSkip(IndexOutput output)
Writes the buffered skip lists to the given output.
-
-
-
Method Detail
-
bufferSkip
public void bufferSkip(int df) throws java.io.IOException
Writes the current skip data to the buffers. The current document frequency determines the max level is skip data is to be written to.- Parameters:
df
- the current document frequency- Throws:
java.io.IOException
- If an I/O error occurs
-
writeSkip
public long writeSkip(IndexOutput output) throws java.io.IOException
Writes the buffered skip lists to the given output.- Parameters:
output
- the IndexOutput the skip lists shall be written to- Returns:
- the pointer the skip list starts
- Throws:
java.io.IOException
-
-