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:
Completion101PostingsFormat
,Completion50PostingsFormat
,Completion84PostingsFormat
,Completion90PostingsFormat
,Completion912PostingsFormat
,Completion99PostingsFormat
A
PostingsFormat
which supports document suggestion based on indexed SuggestField
s. 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
CodecHeader
storing 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
CodecHeader
storing 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 enum
An 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 String
private final CompletionPostingsFormat.FSTLoadMode
(package private) static final String
Fields 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 aCompletionPostingsFormat
that will use the providedfstLoadMode
to determine if the completion FST should be loaded on or off heap. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract PostingsFormat
Concrete 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 aCompletionPostingsFormat
that will use the providedfstLoadMode
to 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:PostingsFormat
Writes a new segment- Specified by:
fieldsConsumer
in classPostingsFormat
- Throws:
IOException
-
fieldsProducer
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:
IOException
-