public abstract class MultiLevelSkipListWriter extends Object
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.
| Modifier and Type | Method and 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.
|
public void bufferSkip(int df)
throws IOException
df - the current document frequencyIOException - If an I/O error occurspublic long writeSkip(IndexOutput output) throws IOException
output - the IndexOutput the skip lists shall be written toIOExceptionCopyright © 2010 - 2020 Adobe. All Rights Reserved