org.apache.lucene.search.suggest.tst

## Class TSTLookup

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

    public class TSTLookup
    extends Lookup

Suggest implementation based on a Ternary Search Tree

See Also:
  `TSTAutocomplete`

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

Constructors
Constructor and Description
`TSTLookup()` Creates a new TSTLookup with an empty Ternary Search Tree.

### Method Summary

Methods
`boolean` `add(CharSequence key, Object value)` Adds a new node if `key` already exists, otherwise replaces its value.
`void` `build(TermFreqIterator tfit)` Builds up a new internal `Lookup` representation based on the given `TermFreqIterator`.
`Object` `get(CharSequence key)` Returns the value for the specified key, or null if the key 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

#### TSTLookup

    public TSTLookup()

Creates a new TSTLookup with an empty Ternary Search Tree.

See Also:
  `build(TermFreqIterator)`

### Method Detail

#### build

    public void build(TermFreqIterator tfit)
               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`

#### add

    public boolean add(CharSequence key,
              Object value)

Adds a new node if `key` already exists, otherwise replaces its value.

This method always returns true.

#### get

    public Object get(CharSequence key)

Returns the value for the specified key, or null if the key does not exist.

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

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