Class WFSTCompletionLookup
- java.lang.Object
-
- org.apache.lucene.search.suggest.Lookup
-
- org.apache.lucene.search.suggest.fst.WFSTCompletionLookup
-
public class WFSTCompletionLookup extends Lookup
Suggester based on a weighted FST: it first traverses the prefix, then walks the n shortest paths to retrieve top-ranked suggestions.NOTE: Although the
TermFreqIteratorAPI specifies floating point weights, input weights should be whole numbers. Input weights will be cast to a java integer, and any negative, infinite, or NaN values will be rejected.- See Also:
Util.shortestPaths(FST, FST.Arc, Comparator, int)- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.search.suggest.Lookup
Lookup.LookupPriorityQueue, Lookup.LookupResult
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.search.suggest.Lookup
CHARSEQUENCE_COMPARATOR
-
-
Constructor Summary
Constructors Constructor Description WFSTCompletionLookup()WFSTCompletionLookup(boolean exactFirst)Creates a new suggester.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuild(TermFreqIterator iterator)Builds up a new internalLookuprepresentation based on the givenTermFreqIterator.Objectget(CharSequence key)Returns the weight associated with an input string, or null if it does not exist.booleanload(InputStream input)Discard current lookup data and load it from a previously saved copy.List<Lookup.LookupResult>lookup(CharSequence key, boolean onlyMorePopular, int num)Look up a key and return possible completion for this key.booleanstore(OutputStream output)Persist the constructed lookup data to a directory.
-
-
-
Constructor Detail
-
WFSTCompletionLookup
public WFSTCompletionLookup()
-
WFSTCompletionLookup
public WFSTCompletionLookup(boolean exactFirst)
Creates a new suggester.- Parameters:
exactFirst-trueif suggestions that match the prefix exactly should always be returned first, regardless of score. This has no performance impact, but could result in low-quality suggestions.
-
-
Method Detail
-
build
public void build(TermFreqIterator iterator) throws IOException
Description copied from class:LookupBuilds up a new internalLookuprepresentation based on the givenTermFreqIterator. The implementation might re-sort the data internally.- Specified by:
buildin classLookup- Throws:
IOException
-
store
public boolean store(OutputStream output) throws IOException
Description copied from class:LookupPersist the constructed lookup data to a directory. Optional operation.- Specified by:
storein classLookup- Parameters:
output-OutputStreamto write the data to.- Returns:
- true if successful, false if unsuccessful or not supported.
- Throws:
IOException- when fatal IO error occurs.
-
load
public boolean load(InputStream input) throws IOException
Description copied from class:LookupDiscard current lookup data and load it from a previously saved copy. Optional operation.- Specified by:
loadin classLookup- Parameters:
input- theInputStreamto load the lookup data.- Returns:
- true if completed successfully, false if unsuccessful or not supported.
- Throws:
IOException- when fatal IO error occurs.
-
lookup
public List<Lookup.LookupResult> lookup(CharSequence key, boolean onlyMorePopular, int num)
Description copied from class:LookupLook up a key and return possible completion for this key.- Specified by:
lookupin classLookup- Parameters:
key- lookup key. Depending on the implementation this may be a prefix, misspelling, or even infix.onlyMorePopular- return only more popular resultsnum- maximum number of results to return- Returns:
- a list of possible completions, with their relative weight (e.g. popularity)
-
get
public Object get(CharSequence key)
Returns the weight associated with an input string, or null if it does not exist.
-
-