Class Lucene99PostingsWriter
- java.lang.Object
-
- org.apache.lucene.codecs.PostingsWriterBase
-
- org.apache.lucene.codecs.PushPostingsWriterBase
-
- org.apache.lucene.codecs.lucene99.Lucene99PostingsWriter
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public final class Lucene99PostingsWriter 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.
- See Also:
for details about skipping setting and postings layout.
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.codecs.PushPostingsWriterBase
fieldInfo, indexOptions, writeFreqs, writeOffsets, writePayloads, writePositions
-
-
Constructor Summary
Constructors Constructor Description Lucene99PostingsWriter(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.Lucene99PostingsFormat.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
-
-
-
-
Constructor Detail
-
Lucene99PostingsWriter
public Lucene99PostingsWriter(SegmentWriteState state) throws IOException
Creates a postings writer- Throws:
IOException
-
-
Method Detail
-
newTermState
public Lucene99PostingsFormat.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 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:
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 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:
IOException
-
addPosition
public void addPosition(int position, BytesRef payload, int startOffset, int endOffset) throws 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:
IOException
-
finishDoc
public void finishDoc() throws IOException
Description copied from class:PushPostingsWriterBase
Called when we are done adding positions and payloads for each doc.- Specified by:
finishDoc
in classPushPostingsWriterBase
- Throws:
IOException
-
finishTerm
public void finishTerm(BlockTermState _state) throws IOException
Called when we are done adding docs to this term- Specified by:
finishTerm
in classPushPostingsWriterBase
- Throws:
IOException
-
encodeTerm
public void encodeTerm(DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute) throws 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:
IOException
-
close
public void close() throws IOException
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classPostingsWriterBase
- Throws:
IOException
-
-