Class Lucene99SkipWriter

java.lang.Object
org.apache.lucene.codecs.MultiLevelSkipListWriter
org.apache.lucene.codecs.lucene99.Lucene99SkipWriter

public final class Lucene99SkipWriter extends MultiLevelSkipListWriter
Write skip lists with multiple levels, and support skip within block ints.

Assume that docFreq = 28, skipInterval = blockSize = 12

  |       block#0       | |      block#1        | |vInts|
  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)
                          ^                       ^       (level 0 skip point)
 

Note that skipWriter will ignore first document in block#0, since it is useless as a skip point. Also, we'll never skip into the vInts block, only record skip data at the start its start point(if it exist).

For each skip point, we will record: 1. docID in former position, i.e. for position 12, record docID[11], etc. 2. its related file points(position, payload), 3. related numbers or uptos(position, payload). 4. start offset.