org.apache.lucene.search.suggest
Class Lookup

java.lang.Object
  extended by org.apache.lucene.search.suggest.Lookup
Direct Known Subclasses:
FSTCompletionLookup, FSTLookup, JaspellLookup, TSTLookup, WFSTCompletionLookup

public abstract class Lookup
extends Object

Simple Lookup interface for CharSequence suggestions.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Nested Class Summary
static class Lookup.LookupPriorityQueue
          A PriorityQueue collecting a fixed size of high priority Lookup.LookupResult
static class Lookup.LookupResult
          Result of a lookup.
 
Field Summary
static Comparator<CharSequence> CHARSEQUENCE_COMPARATOR
          A simple char-by-char comparator for CharSequence
 
Constructor Summary
Lookup()
           
 
Method Summary
 void build(Dictionary dict)
          Build lookup from a dictionary.
abstract  void build(TermFreqIterator tfit)
          Builds up a new internal Lookup representation based on the given TermFreqIterator.
abstract  boolean load(InputStream input)
          Discard current lookup data and load it from a previously saved copy.
abstract  List<Lookup.LookupResult> lookup(CharSequence key, boolean onlyMorePopular, int num)
          Look up a key and return possible completion for this key.
abstract  boolean store(OutputStream output)
          Persist the constructed lookup data to a directory.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CHARSEQUENCE_COMPARATOR

public static final Comparator<CharSequence> CHARSEQUENCE_COMPARATOR
A simple char-by-char comparator for CharSequence

Constructor Detail

Lookup

public Lookup()
Method Detail

build

public void build(Dictionary dict)
           throws IOException
Build lookup from a dictionary. Some implementations may require sorted or unsorted keys from the dictionary's iterator - use SortedTermFreqIteratorWrapper or UnsortedTermFreqIteratorWrapper in such case.

Throws:
IOException

build

public abstract void build(TermFreqIterator tfit)
                    throws IOException
Builds up a new internal Lookup representation based on the given TermFreqIterator. The implementation might re-sort the data internally.

Throws:
IOException

lookup

public abstract List<Lookup.LookupResult> lookup(CharSequence key,
                                                 boolean onlyMorePopular,
                                                 int num)
Look up a key and return possible completion for this key.

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)

store

public abstract boolean store(OutputStream output)
                       throws IOException
Persist the constructed lookup data to a directory. Optional operation.

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 abstract boolean load(InputStream input)
                      throws IOException
Discard current lookup data and load it from a previously saved copy. Optional operation.

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.