Class STUniformSplitTermsWriter
- All Implemented Interfaces:
Closeable,AutoCloseable
UniformSplitTermsWriter by sharing all the fields terms in the same dictionary
and by writing all the fields of a term in the same block line.
The block file contains all the
term blocks for all fields. Each block line, for a single term, may have multiple fields TermState. The block file also contains the fields metadata at the end
of the file.
The dictionary file contains a
single trie (FST bytes) for all fields.
This structure is adapted when there are lots of fields. In this case the shared-terms dictionary trie is much smaller.
This FieldsConsumer requires a custom merge(MergeState, NormsProducer) method for efficiency. The regular merge would scan all the
fields sequentially, which internally would scan the whole shared-terms dictionary as many times
as there are fields. Whereas the custom merge directly scans the internal shared-terms dictionary
of all segments to merge, thus scanning once whatever the number of fields is.
- 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.uniformsplit.UniformSplitTermsWriter
blockEncoder, blockOutput, DEFAULT_DELTA_NUM_LINES, DEFAULT_TARGET_NUM_BLOCK_LINES, deltaNumLines, dictionaryOutput, fieldInfos, fieldMetadataWriter, MAX_NUM_BLOCK_LINES, maxDoc, postingsWriter, targetNumBlockLines -
Constructor Summary
ConstructorsModifierConstructorDescriptionSTUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder) protectedSTUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, FieldMetadata.Serializer fieldMetadataWriter, String codecName, int versionCurrent, String termsBlocksExtension, String dictionaryExtension) STUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, BlockEncoder blockEncoder) -
Method Summary
Modifier and TypeMethodDescriptionvoidmerge(MergeState mergeState, NormsProducer normsProducer) voidwrite(Fields fields, NormsProducer normsProducer) protected voidwriteDictionary(int fieldsNumber, IndexDictionary.Builder dictionaryBuilder) Methods inherited from class org.apache.lucene.codecs.uniformsplit.UniformSplitTermsWriter
close, validateSettings, writeDictionary, writeEncodedFieldsMetadata, writeFieldsMetadata, writeFieldTerms, writePostingLine, writeUnencodedFieldsMetadata
-
Constructor Details
-
STUniformSplitTermsWriter
public STUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, BlockEncoder blockEncoder) throws IOException - Throws:
IOException
-
STUniformSplitTermsWriter
public STUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder) throws IOException - Throws:
IOException
-
STUniformSplitTermsWriter
protected STUniformSplitTermsWriter(PostingsWriterBase postingsWriter, SegmentWriteState state, int targetNumBlockLines, int deltaNumLines, BlockEncoder blockEncoder, FieldMetadata.Serializer fieldMetadataWriter, String codecName, int versionCurrent, String termsBlocksExtension, String dictionaryExtension) throws IOException - Throws:
IOException
-
-
Method Details
-
write
- Overrides:
writein classUniformSplitTermsWriter- Throws:
IOException
-
writeDictionary
protected void writeDictionary(int fieldsNumber, IndexDictionary.Builder dictionaryBuilder) throws IOException - Throws:
IOException
-
merge
- Overrides:
mergein classFieldsConsumer- Throws:
IOException
-