Package 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
  Modifier and Type
  Class
  Description
  `static final class`
  `FSTCompletion.Completion`
  A single completion for a given key.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final int`
  `DEFAULT_BUCKETS`
  Default number of buckets.

- ## Constructor Summary

  Constructors
  Constructor
  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

  Modifier and Type
  Method
  Description
  `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.
  `Stream<FSTCompletion.Completion>`
  `lookup(CharSequence key)`
  Lookup suggestions to `key` and return a stream of matching completions.
  `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 Details

  - ### DEFAULT_BUCKETS

    public static final int DEFAULT_BUCKETS
    Default number of buckets.
    See Also:
      - Constant Field Values

- ## Constructor Details

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

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

  - ### lookup

    public Stream<FSTCompletion.Completion> lookup(CharSequence key)
    Lookup suggestions to `key` and return a stream of matching completions. The stream fetches completions dynamically - it can be filtered and limited to acquire the desired number of completions without collecting all of them.
    Parameters:
      `key` - The prefix to which suggestions should be sought.
    Returns:
      Returns the suggestions

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