| java.lang.Object org.apache.lucene.index.MultiLevelSkipListWriter
All known Subclasses: org.apache.lucene.index.DefaultSkipListWriter,
MultiLevelSkipListWriter | abstract class MultiLevelSkipListWriter (Code) | | 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 guarantess 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 | |
void | bufferSkip(int df) Writes the current skip data to the buffers. | protected void | init() | protected void | resetSkip() | long | writeSkip(IndexOutput output) Writes the buffered skip lists to the given output. | abstract protected void | writeSkipData(int level, IndexOutput skipBuffer) Subclasses must implement the actual skip data encoding in this method. |
MultiLevelSkipListWriter | protected MultiLevelSkipListWriter(int skipInterval, int maxSkipLevels, int df)(Code) | | |
bufferSkip | void bufferSkip(int df) throws IOException(Code) | | 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: IOException - |
init | protected void init()(Code) | | |
resetSkip | protected void resetSkip()(Code) | | |
writeSkip | long writeSkip(IndexOutput output) throws IOException(Code) | | Writes the buffered skip lists to the given output.
Parameters: output - the IndexOutput the skip lists shall be written to the pointer the skip list starts |
writeSkipData | abstract protected void writeSkipData(int level, IndexOutput skipBuffer) throws IOException(Code) | | Subclasses must implement the actual skip data encoding in this method.
Parameters: level - the level skip data shall be writting for Parameters: skipBuffer - the skip buffer to write to |
|
|