Module org.apache.lucene.suggest
Class CompletionPostingsFormat
java.lang.Object
org.apache.lucene.codecs.PostingsFormat
org.apache.lucene.search.suggest.document.CompletionPostingsFormat
- All Implemented Interfaces:
NamedSPILoader.NamedSPI
- Direct Known Subclasses:
Completion50PostingsFormat,Completion84PostingsFormat,Completion90PostingsFormat,Completion99PostingsFormat
A
PostingsFormat which supports document suggestion based on indexed SuggestFields. Document suggestion is based on an weighted FST which map analyzed terms of a
SuggestField to its surface form and document id.
Files:
.lkp: Completion Dictionary.cmp: Completion Index
Completion Dictionary
The .lkp file contains an FST for each suggest field
- CompletionDict (.lkp) --> Header, FSTNumSuggestFields, Footer
- Header -->
CodecHeader - FST -->
FST<Long, BytesRef> - Footer -->
CodecFooter
Notes:
- Header is a
CodecHeaderstoring the version information for the Completion implementation. - FST maps all analyzed forms to surface forms of a SuggestField
Completion Index
The .cmp file contains an index into the completion dictionary, so that it can be accessed randomly.
- CompletionIndex (.cmp) --> Header, NumSuggestFields, EntryNumSuggestFields, Footer
- Header -->
CodecHeader - NumSuggestFields -->
Uint32 - Entry --> FieldNumber, CompletionDictionaryOffset, MinWeight, MaxWeight, Type
- FieldNumber -->
Uint32 - CompletionDictionaryOffset -->
Uint64 - MinWeight -->
Uint64 - MaxWeight -->
Uint64 - Type -->
Byte - Footer -->
CodecFooter
Notes:
- Header is a
CodecHeaderstoring the version information for the Completion implementation. - NumSuggestFields is the number of suggest fields indexed
- FieldNumber is the fields number from
FieldInfos. (.fnm) - CompletionDictionaryOffset is the file offset of a field's FST in CompletionDictionary (.lkp)
- MinWeight and MaxWeight are the global minimum and maximum weight for the field
- Type indicates if the suggester has context or not
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumAn enum that allows to control if suggester FSTs are loaded into memory or read off-heap -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final int(package private) static final int(package private) static final Stringprivate final CompletionPostingsFormat.FSTLoadMode(package private) static final StringFields inherited from class org.apache.lucene.codecs.PostingsFormat
EMPTY -
Constructor Summary
ConstructorsConstructorDescriptionUsed only by core Lucene at read-time via Service Provider instantiationCompletionPostingsFormat(String name, CompletionPostingsFormat.FSTLoadMode fstLoadMode) Creates aCompletionPostingsFormatthat will use the providedfstLoadModeto determine if the completion FST should be loaded on or off heap. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract PostingsFormatConcrete implementation should specify the delegating postings formatfieldsConsumer(SegmentWriteState state) Writes a new segmentfieldsProducer(SegmentReadState state) Reads a segment.Methods inherited from class org.apache.lucene.codecs.PostingsFormat
availablePostingsFormats, forName, getName, reloadPostingsFormats, toString
-
Field Details
-
COMPLETION_CODEC_VERSION
static final int COMPLETION_CODEC_VERSION- See Also:
-
COMPLETION_VERSION_CURRENT
static final int COMPLETION_VERSION_CURRENT- See Also:
-
INDEX_EXTENSION
- See Also:
-
DICT_EXTENSION
- See Also:
-
fstLoadMode
-
-
Constructor Details
-
CompletionPostingsFormat
Used only by core Lucene at read-time via Service Provider instantiation -
CompletionPostingsFormat
Creates aCompletionPostingsFormatthat will use the providedfstLoadModeto determine if the completion FST should be loaded on or off heap.
-
-
Method Details
-
delegatePostingsFormat
Concrete implementation should specify the delegating postings format -
fieldsConsumer
Description copied from class:PostingsFormatWrites a new segment- Specified by:
fieldsConsumerin classPostingsFormat- Throws:
IOException
-
fieldsProducer
Description copied from class:PostingsFormatReads 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:
fieldsProducerin classPostingsFormat- Throws:
IOException
-