org.apache.lucene.search.suggest.fst
Class WFSTCompletionLookup

java.lang.Object
  extended by org.apache.lucene.search.suggest.Lookup
      extended by 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 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.

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
WFSTCompletionLookup()
          Calls WFSTCompletionLookup(true)
WFSTCompletionLookup(boolean exactFirst)
          Creates a new suggester.
 
Method Summary
 void build(TermFreqIterator iterator)
          Builds up a new internal Lookup representation based on the given TermFreqIterator.
 Object get(CharSequence key)
          Returns the weight associated with an input string, or null if it does not exist.
 boolean load(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.
 boolean store(OutputStream output)
          Persist the constructed lookup data to a directory.
 
Methods inherited from class org.apache.lucene.search.suggest.Lookup
build
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WFSTCompletionLookup

public WFSTCompletionLookup()
Calls WFSTCompletionLookup(true)


WFSTCompletionLookup

public WFSTCompletionLookup(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(TermFreqIterator iterator)
           throws IOException
Description copied from class: Lookup
Builds up a new internal Lookup representation based on the given TermFreqIterator. The implementation might re-sort the data internally.

Specified by:
build in class Lookup
Throws:
IOException

store

public boolean store(OutputStream output)
              throws IOException
Description copied from class: Lookup
Persist the constructed lookup data to a directory. Optional operation.

Specified by:
store in class Lookup
Parameters:
output - OutputStream 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(InputStream 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 class Lookup
Parameters:
input - the InputStream 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,
                                        boolean onlyMorePopular,
                                        int num)
Description copied from class: Lookup
Look up a key and return possible completion for this key.

Specified by:
lookup in class Lookup
Parameters:
key - lookup key. Depending on the implementation this may be a prefix, misspelling, or even infix.
onlyMorePopular - return only more popular results
num - 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.