public abstract class PostingsWriterBase extends PostingsConsumer implements java.io.Closeable
PostingsConsumer to support pluggable term dictionaries.
This class contains additional hooks to interact with the provided
term dictionaries such as BlockTreeTermsWriter. If you want
to re-use an existing implementation and are only interested in
customizing the format of the postings list, extend this class
instead.
PostingsReaderBase| Modifier and Type | Method and Description |
|---|---|
abstract void |
close() |
abstract void |
encodeTerm(long[] longs,
DataOutput out,
FieldInfo fieldInfo,
BlockTermState state,
boolean absolute)
Encode metadata as long[] and byte[].
|
abstract void |
finishTerm(BlockTermState state)
Finishes the current term.
|
abstract void |
init(IndexOutput termsOut)
Called once after startup, before any terms have been
added.
|
abstract BlockTermState |
newTermState()
Return a newly created empty TermState
|
abstract 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.
|
abstract void |
startTerm()
Start a new term.
|
addPosition, finishDoc, merge, startDocpublic abstract void init(IndexOutput termsOut) throws java.io.IOException
termsOut.java.io.IOExceptionpublic abstract BlockTermState newTermState() throws java.io.IOException
java.io.IOExceptionpublic abstract void startTerm()
throws java.io.IOException
finishTerm(BlockTermState) is done, only if the term has at least one
document.java.io.IOExceptionpublic abstract void finishTerm(BlockTermState state) throws java.io.IOException
BlockTermState contains the term's summary statistics,
and will holds metadata from PBF when returnedjava.io.IOExceptionpublic abstract void encodeTerm(long[] longs,
DataOutput out,
FieldInfo fieldInfo,
BlockTermState state,
boolean absolute)
throws java.io.IOException
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.java.io.IOExceptionpublic abstract int setField(FieldInfo fieldInfo)
public abstract void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablejava.io.IOExceptionCopyright © 2010 - 2024 Adobe. All Rights Reserved