Class Lucene84SkipWriter
- java.lang.Object
-
- org.apache.lucene.codecs.MultiLevelSkipListWriter
-
- org.apache.lucene.codecs.lucene84.Lucene84SkipWriter
-
final class Lucene84SkipWriter 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 Summary
Fields Modifier and Type Field Description private CompetitiveImpactAccumulator[]curCompetitiveFreqNormsprivate intcurDocprivate longcurDocPointerprivate intcurPayloadByteUptoprivate longcurPayPointerprivate intcurPosBufferUptoprivate longcurPosPointerprivate IndexOutputdocOutprivate booleanfieldHasOffsetsprivate booleanfieldHasPayloadsprivate booleanfieldHasPositionsprivate ByteBuffersDataOutputfreqNormOutprivate booleaninitialized(package private) longlastDocFP(package private) longlastPayFPprivate int[]lastPayloadByteUpto(package private) longlastPosFPprivate int[]lastSkipDocprivate long[]lastSkipDocPointerprivate long[]lastSkipPayPointerprivate long[]lastSkipPosPointerprivate IndexOutputpayOutprivate IndexOutputposOut-
Fields inherited from class org.apache.lucene.codecs.MultiLevelSkipListWriter
numberOfSkipLevels
-
-
Constructor Summary
Constructors Constructor Description Lucene84SkipWriter(int maxSkipLevels, int blockSize, int docCount, IndexOutput docOut, IndexOutput posOut, IndexOutput payOut)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbufferSkip(int doc, CompetitiveImpactAccumulator competitiveFreqNorms, int numDocs, long posFP, long payFP, int posBufferUpto, int payloadByteUpto)Sets the values for the current skip data.private voidinitSkip()voidresetSkip()Creates new buffers or empties the existing onesvoidsetField(boolean fieldHasPositions, boolean fieldHasOffsets, boolean fieldHasPayloads)(package private) static voidwriteImpacts(CompetitiveImpactAccumulator acc, DataOutput out)protected voidwriteSkipData(int level, IndexOutput skipBuffer)Subclasses must implement the actual skip data encoding in this method.-
Methods inherited from class org.apache.lucene.codecs.MultiLevelSkipListWriter
bufferSkip, init, writeSkip
-
-
-
-
Field Detail
-
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 Detail
-
Lucene84SkipWriter
public Lucene84SkipWriter(int maxSkipLevels, int blockSize, int docCount, IndexOutput docOut, IndexOutput posOut, IndexOutput payOut)
-
-
Method Detail
-
setField
public void setField(boolean fieldHasPositions, boolean fieldHasOffsets, boolean fieldHasPayloads)
-
resetSkip
public void resetSkip()
Description copied from class:MultiLevelSkipListWriterCreates new buffers or empties the existing ones- Overrides:
resetSkipin classMultiLevelSkipListWriter
-
initSkip
private void initSkip()
-
bufferSkip
public void bufferSkip(int doc, CompetitiveImpactAccumulator competitiveFreqNorms, int numDocs, long posFP, long payFP, int posBufferUpto, int payloadByteUpto) throws java.io.IOExceptionSets the values for the current skip data.- Throws:
java.io.IOException
-
writeSkipData
protected void writeSkipData(int level, IndexOutput skipBuffer) throws java.io.IOExceptionDescription copied from class:MultiLevelSkipListWriterSubclasses must implement the actual skip data encoding in this method.- Specified by:
writeSkipDatain classMultiLevelSkipListWriter- Parameters:
level- the level skip data shall be writing forskipBuffer- the skip buffer to write to- Throws:
java.io.IOException
-
writeImpacts
static void writeImpacts(CompetitiveImpactAccumulator acc, DataOutput out) throws java.io.IOException
- Throws:
java.io.IOException
-
-