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 void
addPosition(int position, BytesRef payload, int startOffset, int endOffset)
Add a new position and payload, and start/end offset.void
close()
void
encodeTerm(DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute)
Encode metadata as long[] and byte[].void
finishDoc()
Called when we are done adding positions and payloads for each doc.void
finishTerm(BlockTermState _state)
Called when we are done adding docs to this termvoid
init(IndexOutput termsOut, SegmentWriteState state)
Called once after startup, before any terms have been added.Lucene84PostingsFormat.IntBlockTermState
newTermState()
Return a newly created empty TermStatevoid
setField(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.void
startDoc(int docID, int termDocFreq)
Adds a new doc in this term.void
startTerm(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:PushPostingsWriterBase
Return a newly created empty TermState- Specified by:
newTermState
in classPushPostingsWriterBase
-
init
public void init(IndexOutput termsOut, SegmentWriteState state) throws java.io.IOException
Description copied from class:PostingsWriterBase
Called once after startup, before any terms have been added. Implementations typically write a header to the providedtermsOut
.- Specified by:
init
in classPostingsWriterBase
- Throws:
java.io.IOException
-
setField
public void setField(FieldInfo fieldInfo)
Description copied from class:PushPostingsWriterBase
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.- Overrides:
setField
in classPushPostingsWriterBase
-
startTerm
public void startTerm(NumericDocValues norms)
Description copied from class:PushPostingsWriterBase
Start a new term. Note that a matching call toPushPostingsWriterBase.finishTerm(BlockTermState)
is done, only if the term has at least one document.- Specified by:
startTerm
in classPushPostingsWriterBase
-
startDoc
public void startDoc(int docID, int termDocFreq) throws java.io.IOException
Description copied from class:PushPostingsWriterBase
Adds a new doc in this term.freq
will be -1 when term frequencies are omitted for the field.- Specified by:
startDoc
in classPushPostingsWriterBase
- Throws:
java.io.IOException
-
addPosition
public void addPosition(int position, BytesRef payload, int startOffset, int endOffset) throws java.io.IOException
Description copied from class:PushPostingsWriterBase
Add 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 theBytesRef
for the payload between calls (method must fully consume the payload).startOffset
andendOffset
will be -1 when offsets are not indexed.- Specified by:
addPosition
in classPushPostingsWriterBase
- Throws:
java.io.IOException
-
finishDoc
public void finishDoc() throws java.io.IOException
Description copied from class:PushPostingsWriterBase
Called when we are done adding positions and payloads for each doc.- Specified by:
finishDoc
in 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:
finishTerm
in 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:PostingsWriterBase
Encode metadata as long[] and byte[].absolute
controls whether current term is delta encoded according to latest term. Usually elements inlongs
are file pointers, so each one always increases when a new term is consumed.out
is used to write generic bytes, which are not monotonic.- Specified by:
encodeTerm
in classPostingsWriterBase
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in classPostingsWriterBase
- Throws:
java.io.IOException
-
-