org.apache.lucene.search.suggest.fst

## Class FSTCompletion

- java.lang.Object
- - org.apache.lucene.search.suggest.fst.FSTCompletion

    public class FSTCompletion
    extends Object

Finite state automata based implementation of "autocomplete" functionality.

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

### Nested Class Summary

Nested Classes
`static class` `FSTCompletion.Completion` A single completion for a given key.

### Field Summary

Fields
`static int` `DEFAULT_BUCKETS` Default number of buckets.

### Constructor Summary

Constructors
Constructor and Description
`FSTCompletion(FST<Object> automaton)` Defaults to higher weights first and exact first.
`FSTCompletion(FST<Object> automaton, boolean higherWeightsFirst, boolean exactFirst)` Constructs an FSTCompletion, specifying higherWeightsFirst and exactFirst.

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `getBucket(CharSequence key)` Returns the bucket assigned to a given key (if found) or `-1` if no exact match exists.
`int` `getBucketCount()` Returns the bucket count (discretization thresholds).
`FST<Object>` `getFST()` Returns the internal automaton.
`List<FSTCompletion.Completion>` `lookup(CharSequence key, int num)` Lookup suggestions to `key`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### DEFAULT_BUCKETS

    public static final int DEFAULT_BUCKETS

Default number of buckets.

See Also:
  Constant Field Values

### Constructor Detail

#### FSTCompletion

    public FSTCompletion(FST<Object> automaton,
                         boolean higherWeightsFirst,
                         boolean exactFirst)

Constructs an FSTCompletion, specifying higherWeightsFirst and exactFirst.

Parameters:
  `automaton` - Automaton with completions. See `FSTCompletionBuilder`.
  `higherWeightsFirst` - Return most popular suggestions first. This is the default behavior for this implementation. Setting it to `false` has no effect (use constant term weights to sort alphabetically only).
  `exactFirst` - Find and push an exact match to the first position of the result list if found.

#### FSTCompletion

    public FSTCompletion(FST<Object> automaton)

Defaults to higher weights first and exact first.

See Also:
  `FSTCompletion(FST, boolean, boolean)`

### Method Detail

#### lookup

    public List<FSTCompletion.Completion> lookup(CharSequence key,
                                                 int num)

Lookup suggestions to `key`.

Parameters:
  `key` - The prefix to which suggestions should be sought.
  `num` - At most this number of suggestions will be returned.
Returns:
  Returns the suggestions, sorted by their approximated weight first (decreasing) and then alphabetically (UTF-8 codepoint order).

#### getBucketCount

    public int getBucketCount()

Returns the bucket count (discretization thresholds).

#### getBucket

    public int getBucket(CharSequence key)

Returns the bucket assigned to a given key (if found) or `-1` if no exact match exists.

#### getFST

    public FST<Object> getFST()

Returns the internal automaton.