Class UniformSplitPostingsFormat
- java.lang.Object
-
- org.apache.lucene.codecs.PostingsFormat
-
- org.apache.lucene.codecs.uniformsplit.UniformSplitPostingsFormat
-
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
STUniformSplitPostingsFormat
public class UniformSplitPostingsFormat extends PostingsFormat
PostingsFormat
based on the Uniform Split technique.- See Also:
UniformSplitTermsWriter
-
-
Field Summary
Fields Modifier and Type Field Description protected BlockDecoder
blockDecoder
protected BlockEncoder
blockEncoder
protected int
deltaNumLines
static java.lang.String
NAME
protected int
targetNumBlockLines
static java.lang.String
TERMS_BLOCKS_EXTENSION
Extension of the file containing the terms blocks for each field and the fields metadata.static java.lang.String
TERMS_DICTIONARY_EXTENSION
Extension of the file containing the terms dictionary (the FST "trie").static int
VERSION_CURRENT
-
Fields inherited from class org.apache.lucene.codecs.PostingsFormat
EMPTY
-
-
Constructor Summary
Constructors Modifier Constructor Description UniformSplitPostingsFormat()
UniformSplitPostingsFormat(int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder)
protected
UniformSplitPostingsFormat(java.lang.String name, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected FieldsProducer
createUniformSplitTermsReader(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder)
protected FieldsConsumer
createUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder)
FieldsConsumer
fieldsConsumer(SegmentWriteState state)
Writes a new segmentFieldsProducer
fieldsProducer(SegmentReadState state)
Reads a segment.private static void
validateBlockEncoder(BlockEncoder blockEncoder, BlockDecoder blockDecoder)
-
Methods inherited from class org.apache.lucene.codecs.PostingsFormat
availablePostingsFormats, forName, getName, reloadPostingsFormats, toString
-
-
-
-
Field Detail
-
TERMS_DICTIONARY_EXTENSION
public static final java.lang.String TERMS_DICTIONARY_EXTENSION
Extension of the file containing the terms dictionary (the FST "trie").- See Also:
- Constant Field Values
-
TERMS_BLOCKS_EXTENSION
public static final java.lang.String TERMS_BLOCKS_EXTENSION
Extension of the file containing the terms blocks for each field and the fields metadata.- See Also:
- Constant Field Values
-
VERSION_CURRENT
public static final int VERSION_CURRENT
- See Also:
- Constant Field Values
-
NAME
public static final java.lang.String NAME
- See Also:
- Constant Field Values
-
targetNumBlockLines
protected final int targetNumBlockLines
-
deltaNumLines
protected final int deltaNumLines
-
blockEncoder
protected final BlockEncoder blockEncoder
-
blockDecoder
protected final BlockDecoder blockDecoder
-
-
Constructor Detail
-
UniformSplitPostingsFormat
public UniformSplitPostingsFormat()
-
UniformSplitPostingsFormat
public UniformSplitPostingsFormat(int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder)
- Parameters:
targetNumBlockLines
- Target number of lines per block. Must be strictly greater than 0. The parameters can be pre-validated withUniformSplitTermsWriter.validateSettings(int, int)
. There is one term per block line, with its corresponding details (TermState
).deltaNumLines
- Maximum allowed delta variation of the number of lines per block. Must be greater than or equal to 0 and strictly less thantargetNumBlockLines
. The block size will betargetNumBlockLines
+-deltaNumLines
. The block size must always be less than or equal toUniformSplitTermsWriter.MAX_NUM_BLOCK_LINES
.blockEncoder
- Optional block encoder, may be null if none. It can be used for compression or encryption.blockDecoder
- Optional block decoder, may be null if none. It can be used for compression or encryption.
-
UniformSplitPostingsFormat
protected UniformSplitPostingsFormat(java.lang.String name, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, BlockDecoder blockDecoder)
-
-
Method Detail
-
fieldsConsumer
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws java.io.IOException
Description copied from class:PostingsFormat
Writes a new segment- Specified by:
fieldsConsumer
in classPostingsFormat
- Throws:
java.io.IOException
-
fieldsProducer
public FieldsProducer fieldsProducer(SegmentReadState state) throws java.io.IOException
Description copied from class:PostingsFormat
Reads a segment. NOTE: by the time this call returns, it must hold open any files it will need to use; else, those files may be deleted. Additionally, required files may be deleted during the execution of this call before there is a chance to open them. Under these circumstances an IOException should be thrown by the implementation. IOExceptions are expected and will automatically cause a retry of the segment opening logic with the newly revised segments.- Specified by:
fieldsProducer
in classPostingsFormat
- Throws:
java.io.IOException
-
createUniformSplitTermsWriter
protected FieldsConsumer createUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder) throws java.io.IOException
- Throws:
java.io.IOException
-
createUniformSplitTermsReader
protected FieldsProducer createUniformSplitTermsReader(PostingsReaderBase postingsReader, SegmentReadState state, BlockDecoder blockDecoder) throws java.io.IOException
- Throws:
java.io.IOException
-
validateBlockEncoder
private static void validateBlockEncoder(BlockEncoder blockEncoder, BlockDecoder blockDecoder)
-
-