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
public abstract class CompletionPostingsFormat extends PostingsFormat
APostingsFormat
which supports document suggestion based on indexedSuggestField
s. Document suggestion is based on an weighted FST which map analyzed terms of aSuggestField
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
- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CompletionPostingsFormat.FSTLoadMode
An enum that allows to control if suggester FSTs are loaded into memory or read off-heap
-
Field Summary
-
Fields inherited from class org.apache.lucene.codecs.PostingsFormat
EMPTY
-
-
Constructor Summary
Constructors Constructor Description CompletionPostingsFormat(String name)
Used 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
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract PostingsFormat
delegatePostingsFormat()
Concrete implementation should specify the delegating postings formatFieldsConsumer
fieldsConsumer(SegmentWriteState state)
FieldsProducer
fieldsProducer(SegmentReadState state)
-
Methods inherited from class org.apache.lucene.codecs.PostingsFormat
availablePostingsFormats, forName, getName, reloadPostingsFormats, toString
-
-
-
-
Constructor Detail
-
CompletionPostingsFormat
public CompletionPostingsFormat(String name)
Used only by core Lucene at read-time via Service Provider instantiation
-
CompletionPostingsFormat
public CompletionPostingsFormat(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 Detail
-
delegatePostingsFormat
protected abstract PostingsFormat delegatePostingsFormat()
Concrete implementation should specify the delegating postings format
-
fieldsConsumer
public FieldsConsumer fieldsConsumer(SegmentWriteState state) throws IOException
- Specified by:
fieldsConsumer
in classPostingsFormat
- Throws:
IOException
-
fieldsProducer
public FieldsProducer fieldsProducer(SegmentReadState state) throws IOException
- Specified by:
fieldsProducer
in classPostingsFormat
- Throws:
IOException
-
-