Class Lucene41PostingsWriter
java.lang.Object
org.apache.lucene.codecs.PostingsConsumer
org.apache.lucene.codecs.PostingsWriterBase
org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter
- All Implemented Interfaces:
Closeable
,AutoCloseable
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.
-
Constructor Summary
ConstructorsConstructorDescriptionCreates a postings writer withPackedInts.COMPACT
Lucene41PostingsWriter
(SegmentWriteState state, float acceptableOverheadRatio) Creates a postings writer with the specified PackedInts overhead ratio -
Method Summary
Modifier and TypeMethodDescriptionvoid
addPosition
(int position, BytesRef payload, int startOffset, int endOffset) Add a new position & payloadvoid
close()
void
encodeTerm
(long[] longs, DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute) Encode metadata as long[] and byte[].void
Called when we are done adding positions & payloads for each doc.void
finishTerm
(BlockTermState _state) Called when we are done adding docs to this termvoid
init
(IndexOutput termsOut) Called once after startup, before any terms have been added.org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter.IntBlockTermState
Return a newly created empty TermStateint
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
Start a new term.Methods inherited from class org.apache.lucene.codecs.PostingsConsumer
merge
-
Constructor Details
-
Lucene41PostingsWriter
public Lucene41PostingsWriter(SegmentWriteState state, float acceptableOverheadRatio) throws IOException Creates a postings writer with the specified PackedInts overhead ratio- Throws:
IOException
-
Lucene41PostingsWriter
Creates a postings writer withPackedInts.COMPACT
- Throws:
IOException
-
-
Method Details
-
newTermState
public org.apache.lucene.codecs.lucene41.Lucene41PostingsWriter.IntBlockTermState newTermState()Description copied from class:PostingsWriterBase
Return a newly created empty TermState- Specified by:
newTermState
in classPostingsWriterBase
-
init
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
Description copied from class:PostingsWriterBase
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.- Specified by:
setField
in classPostingsWriterBase
-
startTerm
public void startTerm()Description copied from class:PostingsWriterBase
Start a new term. Note that a matching call toPostingsWriterBase.finishTerm(BlockTermState)
is done, only if the term has at least one document.- Specified by:
startTerm
in classPostingsWriterBase
-
startDoc
Description copied from class:PostingsConsumer
Adds a new doc in this term.freq
will be -1 when term frequencies are omitted for the field.- Specified by:
startDoc
in classPostingsConsumer
- Throws:
IOException
-
addPosition
public void addPosition(int position, BytesRef payload, int startOffset, int endOffset) throws IOException Add a new position & payload- Specified by:
addPosition
in classPostingsConsumer
- Throws:
IOException
-
finishDoc
Description copied from class:PostingsConsumer
Called when we are done adding positions & payloads for each doc.- Specified by:
finishDoc
in classPostingsConsumer
- Throws:
IOException
-
finishTerm
Called when we are done adding docs to this term- Specified by:
finishTerm
in classPostingsWriterBase
- Throws:
IOException
-
encodeTerm
public void encodeTerm(long[] longs, 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. NOTE: sometimes long[] might contain "don't care" values that are unused, e.g. the pointer to postings list may not be defined for some terms but is defined for others, if it is designed to inline some postings data in term dictionary. In this case, the postings writer should always use the last value, so that each element in metadata long[] remains monotonic.- Specified by:
encodeTerm
in classPostingsWriterBase
- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in classPostingsWriterBase
- Throws:
IOException
-