Class Lucene84PostingsWriter
- java.lang.Object
-
- org.apache.lucene.codecs.PostingsWriterBase
-
- org.apache.lucene.codecs.PushPostingsWriterBase
-
- org.apache.lucene.codecs.lucene84.Lucene84PostingsWriter
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public final class Lucene84PostingsWriter extends PushPostingsWriterBase
Concrete class that writes docId(maybe frq,pos,offset,payloads) list with postings format. Postings list for each term will be stored separately.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.codecs.PushPostingsWriterBase
fieldInfo, indexOptions, writeFreqs, writeOffsets, writePayloads, writePositions
-
-
Constructor Summary
Constructors Constructor Description Lucene84PostingsWriter(SegmentWriteState state)Creates a postings writer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddPosition(int position, BytesRef payload, int startOffset, int endOffset)Add a new position and payload, and start/end offset.voidclose()voidencodeTerm(DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute)Encode metadata as long[] and byte[].voidfinishDoc()Called when we are done adding positions and payloads for each doc.voidfinishTerm(BlockTermState _state)Called when we are done adding docs to this termvoidinit(IndexOutput termsOut, SegmentWriteState state)Called once after startup, before any terms have been added.Lucene84PostingsFormat.IntBlockTermStatenewTermState()Return a newly created empty TermStatevoidsetField(FieldInfo fieldInfo)Sets the current field for writing, and returns the fixed length of long[] metadata (which is fixed per field), called when the writing switches to another field.voidstartDoc(int docID, int termDocFreq)Adds a new doc in this term.voidstartTerm(NumericDocValues norms)Start a new term.-
Methods inherited from class org.apache.lucene.codecs.PushPostingsWriterBase
writeTerm
-
-
-
-
Field Detail
-
docOut
IndexOutput docOut
-
posOut
IndexOutput posOut
-
payOut
IndexOutput payOut
-
emptyState
static final Lucene84PostingsFormat.IntBlockTermState emptyState
-
lastState
Lucene84PostingsFormat.IntBlockTermState lastState
-
docStartFP
private long docStartFP
-
posStartFP
private long posStartFP
-
payStartFP
private long payStartFP
-
docDeltaBuffer
final long[] docDeltaBuffer
-
freqBuffer
final long[] freqBuffer
-
docBufferUpto
private int docBufferUpto
-
posDeltaBuffer
final long[] posDeltaBuffer
-
payloadLengthBuffer
final long[] payloadLengthBuffer
-
offsetStartDeltaBuffer
final long[] offsetStartDeltaBuffer
-
offsetLengthBuffer
final long[] offsetLengthBuffer
-
posBufferUpto
private int posBufferUpto
-
payloadBytes
private byte[] payloadBytes
-
payloadByteUpto
private int payloadByteUpto
-
lastBlockDocID
private int lastBlockDocID
-
lastBlockPosFP
private long lastBlockPosFP
-
lastBlockPayFP
private long lastBlockPayFP
-
lastBlockPosBufferUpto
private int lastBlockPosBufferUpto
-
lastBlockPayloadByteUpto
private int lastBlockPayloadByteUpto
-
lastDocID
private int lastDocID
-
lastPosition
private int lastPosition
-
lastStartOffset
private int lastStartOffset
-
docCount
private int docCount
-
pforUtil
private final PForUtil pforUtil
-
forDeltaUtil
private final ForDeltaUtil forDeltaUtil
-
skipWriter
private final Lucene84SkipWriter skipWriter
-
fieldHasNorms
private boolean fieldHasNorms
-
norms
private NumericDocValues norms
-
competitiveFreqNormAccumulator
private final CompetitiveImpactAccumulator competitiveFreqNormAccumulator
-
-
Constructor Detail
-
Lucene84PostingsWriter
public Lucene84PostingsWriter(SegmentWriteState state) throws java.io.IOException
Creates a postings writer- Throws:
java.io.IOException
-
-
Method Detail
-
newTermState
public Lucene84PostingsFormat.IntBlockTermState newTermState()
Description copied from class:PushPostingsWriterBaseReturn a newly created empty TermState- Specified by:
newTermStatein classPushPostingsWriterBase
-
init
public void init(IndexOutput termsOut, SegmentWriteState state) throws java.io.IOException
Description copied from class:PostingsWriterBaseCalled once after startup, before any terms have been added. Implementations typically write a header to the providedtermsOut.- Specified by:
initin classPostingsWriterBase- Throws:
java.io.IOException
-
setField
public void setField(FieldInfo fieldInfo)
Description copied from class:PushPostingsWriterBaseSets the current field for writing, and returns the fixed length of long[] metadata (which is fixed per field), called when the writing switches to another field.- Overrides:
setFieldin classPushPostingsWriterBase
-
startTerm
public void startTerm(NumericDocValues norms)
Description copied from class:PushPostingsWriterBaseStart a new term. Note that a matching call toPushPostingsWriterBase.finishTerm(BlockTermState)is done, only if the term has at least one document.- Specified by:
startTermin classPushPostingsWriterBase
-
startDoc
public void startDoc(int docID, int termDocFreq) throws java.io.IOExceptionDescription copied from class:PushPostingsWriterBaseAdds a new doc in this term.freqwill be -1 when term frequencies are omitted for the field.- Specified by:
startDocin classPushPostingsWriterBase- Throws:
java.io.IOException
-
addPosition
public void addPosition(int position, BytesRef payload, int startOffset, int endOffset) throws java.io.IOExceptionDescription copied from class:PushPostingsWriterBaseAdd a new position and payload, and start/end offset. A null payload means no payload; a non-null payload with zero length also means no payload. Caller may reuse theBytesReffor the payload between calls (method must fully consume the payload).startOffsetandendOffsetwill be -1 when offsets are not indexed.- Specified by:
addPositionin classPushPostingsWriterBase- Throws:
java.io.IOException
-
finishDoc
public void finishDoc() throws java.io.IOExceptionDescription copied from class:PushPostingsWriterBaseCalled when we are done adding positions and payloads for each doc.- Specified by:
finishDocin classPushPostingsWriterBase- Throws:
java.io.IOException
-
finishTerm
public void finishTerm(BlockTermState _state) throws java.io.IOException
Called when we are done adding docs to this term- Specified by:
finishTermin classPushPostingsWriterBase- Throws:
java.io.IOException
-
encodeTerm
public void encodeTerm(DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute) throws java.io.IOException
Description copied from class:PostingsWriterBaseEncode metadata as long[] and byte[].absolutecontrols whether current term is delta encoded according to latest term. Usually elements inlongsare file pointers, so each one always increases when a new term is consumed.outis used to write generic bytes, which are not monotonic.- Specified by:
encodeTermin classPostingsWriterBase- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classPostingsWriterBase- Throws:
java.io.IOException
-
-