org.apache.lucene.search.suggest

## Class Lookup

- java.lang.Object
- - org.apache.lucene.search.suggest.Lookup

Direct Known Subclasses:
  AnalyzingSuggester, FSTCompletionLookup, 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

Nested Classes
`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

Fields
`static Comparator<CharSequence>` `CHARSEQUENCE_COMPARATOR` A simple char-by-char comparator for `CharSequence`

### Constructor Summary

Constructors
Constructor and Description
`Lookup()` Sole constructor.

### Method Summary

Methods
`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()

Sole constructor. (For invocation by subclass constructors, typically implicit.)

### 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.