public class WFSTCompletionLookup extends Lookup implements Accountable
NOTE:
Input weights must be between 0 and Integer.MAX_VALUE
, any
other values will be rejected.
Modifier and Type | Class and Description |
---|---|
private static class |
WFSTCompletionLookup.WFSTInputIterator |
Lookup.LookupPriorityQueue, Lookup.LookupResult
Modifier and Type | Field and Description |
---|---|
private long |
count
Number of entries the lookup was built with
|
private boolean |
exactFirst
True if exact match suggestions should always be returned first.
|
private FST<java.lang.Long> |
fst
FST
|
private Directory |
tempDir |
private java.lang.String |
tempFileNamePrefix |
(package private) static java.util.Comparator<java.lang.Long> |
weightComparator |
CHARSEQUENCE_COMPARATOR
Constructor and Description |
---|
WFSTCompletionLookup(Directory tempDir,
java.lang.String tempFileNamePrefix)
|
WFSTCompletionLookup(Directory tempDir,
java.lang.String tempFileNamePrefix,
boolean exactFirst)
Creates a new suggester.
|
Modifier and Type | Method and Description |
---|---|
void |
build(InputIterator iterator)
Builds up a new internal
Lookup representation based on the given InputIterator . |
private static int |
decodeWeight(long encoded)
cost -> weight
|
private static int |
encodeWeight(long value)
weight -> cost
|
java.lang.Object |
get(java.lang.CharSequence key)
Returns the weight associated with an input string,
or null if it does not exist.
|
java.util.Collection<Accountable> |
getChildResources()
Returns nested resources of this class.
|
long |
getCount()
Get the number of entries the lookup was built with
|
boolean |
load(DataInput input)
Discard current lookup data and load it from a previously saved copy.
|
java.util.List<Lookup.LookupResult> |
lookup(java.lang.CharSequence key,
java.util.Set<BytesRef> contexts,
boolean onlyMorePopular,
int num)
Look up a key and return possible completion for this key.
|
private java.lang.Long |
lookupPrefix(BytesRef scratch,
FST.Arc<java.lang.Long> arc) |
long |
ramBytesUsed()
Returns byte size of the underlying FST.
|
boolean |
store(DataOutput output)
Persist the constructed lookup data to a directory.
|
private FST<java.lang.Long> fst
private final boolean exactFirst
private long count
private final Directory tempDir
private final java.lang.String tempFileNamePrefix
static final java.util.Comparator<java.lang.Long> weightComparator
public WFSTCompletionLookup(Directory tempDir, java.lang.String tempFileNamePrefix)
public WFSTCompletionLookup(Directory tempDir, java.lang.String tempFileNamePrefix, 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(InputIterator iterator) throws java.io.IOException
Lookup
Lookup
representation based on the given InputIterator
.
The implementation might re-sort the data internally.public boolean store(DataOutput output) throws java.io.IOException
Lookup
store
in class Lookup
output
- DataOutput
to write the data to.java.io.IOException
- when fatal IO error occurs.public boolean load(DataInput input) throws java.io.IOException
Lookup
public java.util.List<Lookup.LookupResult> lookup(java.lang.CharSequence key, java.util.Set<BytesRef> contexts, 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.contexts
- contexts to filter the lookup by, or null if all contexts are allowed; if the suggestion contains any of the contexts, it's a matchonlyMorePopular
- return only more popular resultsnum
- maximum number of results to returnprivate java.lang.Long lookupPrefix(BytesRef scratch, FST.Arc<java.lang.Long> arc) throws java.io.IOException
java.io.IOException
public java.lang.Object get(java.lang.CharSequence key)
private static int decodeWeight(long encoded)
private static int encodeWeight(long value)
public long ramBytesUsed()
ramBytesUsed
in interface Accountable
public java.util.Collection<Accountable> getChildResources()
Accountable
getChildResources
in interface Accountable
Accountables