Class WFSTCompletionLookup
- java.lang.Object
-
- org.apache.lucene.search.suggest.Lookup
-
- org.apache.lucene.search.suggest.fst.WFSTCompletionLookup
-
- All Implemented Interfaces:
Accountable
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: Input weights must be between 0 and
Integer.MAX_VALUE
, any other values will be rejected.- 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
-
Fields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE
-
-
Constructor Summary
Constructors Constructor Description WFSTCompletionLookup(Directory tempDir, String tempFileNamePrefix)
WFSTCompletionLookup(Directory tempDir, String tempFileNamePrefix, boolean exactFirst)
Creates a new suggester.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
build(InputIterator iterator)
Builds up a new internalLookup
representation based on the givenInputIterator
.Object
get(CharSequence key)
Returns the weight associated with an input string, or null if it does not exist.Collection<Accountable>
getChildResources()
long
getCount()
Get the number of entries the lookup was built withboolean
load(DataInput input)
Discard current lookup data and load it from a previously saved copy.List<Lookup.LookupResult>
lookup(CharSequence key, Set<BytesRef> contexts, boolean onlyMorePopular, int num)
Look up a key and return possible completion for this key.long
ramBytesUsed()
Returns byte size of the underlying FST.boolean
store(DataOutput output)
Persist the constructed lookup data to a directory.
-
-
-
Constructor Detail
-
WFSTCompletionLookup
public WFSTCompletionLookup(Directory tempDir, String tempFileNamePrefix, boolean exactFirst)
Creates a new suggester.- Parameters:
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.
-
-
Method Detail
-
build
public void build(InputIterator iterator) throws IOException
Description copied from class:Lookup
Builds up a new internalLookup
representation based on the givenInputIterator
. The implementation might re-sort the data internally.- Specified by:
build
in classLookup
- Throws:
IOException
-
store
public boolean store(DataOutput output) throws IOException
Description copied from class:Lookup
Persist the constructed lookup data to a directory. Optional operation.- Specified by:
store
in classLookup
- Parameters:
output
-DataOutput
to 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(DataInput input) throws IOException
Description copied from class:Lookup
Discard current lookup data and load it from a previously saved copy. Optional operation.- Specified by:
load
in classLookup
- Parameters:
input
- theDataInput
to 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, Set<BytesRef> contexts, boolean onlyMorePopular, int num)
Description copied from class:Lookup
Look up a key and return possible completion for this key.- Specified by:
lookup
in classLookup
- Parameters:
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 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.
-
ramBytesUsed
public long ramBytesUsed()
Returns byte size of the underlying FST.
-
getChildResources
public Collection<Accountable> getChildResources()
-
-