Class Lucene90SkipWriter

java.lang.Object
org.apache.lucene.codecs.MultiLevelSkipListWriter
org.apache.lucene.codecs.lucene90.Lucene90SkipWriter

final class Lucene90SkipWriter 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.

  • Field Details

    • lastSkipDoc

      private int[] lastSkipDoc
    • lastSkipDocPointer

      private long[] lastSkipDocPointer
    • lastSkipPosPointer

      private long[] lastSkipPosPointer
    • lastSkipPayPointer

      private long[] lastSkipPayPointer
    • lastPayloadByteUpto

      private int[] lastPayloadByteUpto
    • docOut

      private final IndexOutput docOut
    • posOut

      private final IndexOutput posOut
    • payOut

      private final IndexOutput payOut
    • curDoc

      private int curDoc
    • curDocPointer

      private long curDocPointer
    • curPosPointer

      private long curPosPointer
    • curPayPointer

      private long curPayPointer
    • curPosBufferUpto

      private int curPosBufferUpto
    • curPayloadByteUpto

      private int curPayloadByteUpto
    • curCompetitiveFreqNorms

      private CompetitiveImpactAccumulator[] curCompetitiveFreqNorms
    • fieldHasPositions

      private boolean fieldHasPositions
    • fieldHasOffsets

      private boolean fieldHasOffsets
    • fieldHasPayloads

      private boolean fieldHasPayloads
    • initialized

      private boolean initialized
    • lastDocFP

      long lastDocFP
    • lastPosFP

      long lastPosFP
    • lastPayFP

      long lastPayFP
    • freqNormOut

      private final ByteBuffersDataOutput freqNormOut
  • Constructor Details

  • Method Details