public final class Lucene40PostingsWriter extends PostingsWriterBase
Lucene40PostingsFormat
Constructor and Description |
---|
Lucene40PostingsWriter(SegmentWriteState state)
Creates a
Lucene40PostingsWriter , with the
DEFAULT_SKIP_INTERVAL . |
Lucene40PostingsWriter(SegmentWriteState state,
int skipInterval)
Creates a
Lucene40PostingsWriter , with the
specified skipInterval . |
Modifier and Type | Method and Description |
---|---|
void |
addPosition(int position,
BytesRef payload,
int startOffset,
int endOffset)
Add a new position & payload
|
void |
close() |
void |
encodeTerm(long[] empty,
DataOutput out,
FieldInfo fieldInfo,
BlockTermState _state,
boolean absolute)
Encode metadata as long[] and byte[].
|
void |
finishDoc()
Called when we are done adding positions & payloads
for each doc.
|
void |
finishTerm(BlockTermState _state)
Called when we are done adding docs to this term
|
void |
init(IndexOutput termsOut)
Called once after startup, before any terms have been
added.
|
BlockTermState |
newTermState()
Return a newly created empty TermState
|
int |
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()
Start a new term.
|
merge
public Lucene40PostingsWriter(SegmentWriteState state) throws IOException
Lucene40PostingsWriter
, with the
DEFAULT_SKIP_INTERVAL
.IOException
public Lucene40PostingsWriter(SegmentWriteState state, int skipInterval) throws IOException
Lucene40PostingsWriter
, with the
specified skipInterval
.IOException
public void init(IndexOutput termsOut) throws IOException
PostingsWriterBase
termsOut
.init
in class PostingsWriterBase
IOException
public BlockTermState newTermState()
PostingsWriterBase
newTermState
in class PostingsWriterBase
public void startTerm()
PostingsWriterBase
PostingsWriterBase.finishTerm(BlockTermState)
is done, only if the term has at least one
document.startTerm
in class PostingsWriterBase
public int setField(FieldInfo fieldInfo)
PostingsWriterBase
setField
in class PostingsWriterBase
public void startDoc(int docID, int termDocFreq) throws IOException
PostingsConsumer
freq
will be -1 when term frequencies are omitted
for the field.startDoc
in class PostingsConsumer
IOException
public void addPosition(int position, BytesRef payload, int startOffset, int endOffset) throws IOException
addPosition
in class PostingsConsumer
IOException
public void finishDoc()
PostingsConsumer
finishDoc
in class PostingsConsumer
public void finishTerm(BlockTermState _state) throws IOException
finishTerm
in class PostingsWriterBase
IOException
public void encodeTerm(long[] empty, DataOutput out, FieldInfo fieldInfo, BlockTermState _state, boolean absolute) throws IOException
PostingsWriterBase
absolute
controls whether
current term is delta encoded according to latest term.
Usually elements in longs
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.encodeTerm
in class PostingsWriterBase
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class PostingsWriterBase
IOException
Copyright © 2000–2021 The Apache Software Foundation. All rights reserved.