public class WFSTCompletionLookup extends Lookup
NOTE: Although the TermFreqIterator
API 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.
Util.shortestPaths(FST, FST.Arc, Comparator, int)
Lookup.LookupPriorityQueue, Lookup.LookupResult
CHARSEQUENCE_COMPARATOR
Constructor and Description |
---|
WFSTCompletionLookup()
|
WFSTCompletionLookup(boolean exactFirst)
Creates a new suggester.
|
Modifier and Type | Method and Description |
---|---|
void |
build(TermFreqIterator iterator)
Builds up a new internal
Lookup representation based on the given TermFreqIterator . |
java.lang.Object |
get(java.lang.CharSequence key)
Returns the weight associated with an input string,
or null if it does not exist.
|
boolean |
load(java.io.InputStream input)
Discard current lookup data and load it from a previously saved copy.
|
java.util.List<Lookup.LookupResult> |
lookup(java.lang.CharSequence key,
boolean onlyMorePopular,
int num)
Look up a key and return possible completion for this key.
|
boolean |
store(java.io.OutputStream output)
Persist the constructed lookup data to a directory.
|
public WFSTCompletionLookup()
public WFSTCompletionLookup(boolean exactFirst)
exactFirst
- true
if 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.public void build(TermFreqIterator iterator) throws java.io.IOException
Lookup
Lookup
representation based on the given TermFreqIterator
.
The implementation might re-sort the data internally.public boolean store(java.io.OutputStream output) throws java.io.IOException
Lookup
public boolean load(java.io.InputStream input) throws java.io.IOException
Lookup
public java.util.List<Lookup.LookupResult> lookup(java.lang.CharSequence key, boolean onlyMorePopular, int num)
Lookup
lookup
in class Lookup
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 returnpublic java.lang.Object get(java.lang.CharSequence key)