Package org.apache.lucene.search.suggest

# Class Lookup

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

All Implemented Interfaces:
  `Accountable`

Direct Known Subclasses:
  `AnalyzingInfixSuggester`, `AnalyzingSuggester`, `FreeTextSuggester`, `FSTCompletionLookup`, `TSTLookup`, `WFSTCompletionLookup`

public abstract class Lookup extends Object implements Accountable
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
  Modifier and Type
  Class
  Description
  `static final class`
  `Lookup.LookupPriorityQueue`
  A `PriorityQueue` collecting a fixed size of high priority `Lookup.LookupResult`
  `static final class`
  `Lookup.LookupResult`
  Result of a lookup.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final Comparator<CharSequence>`
  `CHARSEQUENCE_COMPARATOR`
  A simple char-by-char comparator for `CharSequence`

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Lookup()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `build(Dictionary dict)`
  Build lookup from a dictionary.
  `abstract void`
  `build(InputIterator inputIterator)`
  Builds up a new internal `Lookup` representation based on the given `InputIterator`.
  `abstract long`
  `getCount()`
  Get the number of entries the lookup was built with
  `boolean`
  `load(InputStream input)`
  Calls `load(DataInput)` after converting `InputStream` to `DataInput`
  `abstract boolean`
  `load(DataInput 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.
  `abstract List<Lookup.LookupResult>`
  `lookup(CharSequence key, Set<BytesRef> contexts, boolean onlyMorePopular, int num)`
  Look up a key and return possible completion for this key.
  `List<Lookup.LookupResult>`
  `lookup(CharSequence key, BooleanQuery contextFilerQuery, int num, boolean allTermsRequired, boolean doHighlight)`
  Look up a key and return possible completion for this key.
  `boolean`
  `store(OutputStream output)`
  Calls `store(DataOutput)` after converting `OutputStream` to `DataOutput`
  `abstract boolean`
  `store(DataOutput 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`

  ### Methods inherited from interface org.apache.lucene.util.Accountable

  `getChildResources, ramBytesUsed`

- ## Field Details

  - ### CHARSEQUENCE_COMPARATOR

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

- ## Constructor Details

  - ### Lookup

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

- ## Method Details

  - ### 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 `SortedInputIterator` or `UnsortedInputIterator` in such case.
    Throws:
      `IOException`

  - ### load

    public boolean load(InputStream input) throws IOException
    Calls `load(DataInput)` after converting `InputStream` to `DataInput`
    Throws:
      `IOException`

  - ### store

    public boolean store(OutputStream output) throws IOException
    Calls `store(DataOutput)` after converting `OutputStream` to `DataOutput`
    Throws:
      `IOException`

  - ### getCount

    public abstract long getCount() throws IOException
    Get the number of entries the lookup was built with
    Returns:
      total number of suggester entries
    Throws:
      `IOException`

  - ### build

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

  - ### lookup

    public List<Lookup.LookupResult> lookup(CharSequence key, boolean onlyMorePopular, int num) throws IOException
    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)
    Throws:
      `IOException`

  - ### lookup

    public abstract List<Lookup.LookupResult> lookup(CharSequence key, Set<BytesRef> contexts, boolean onlyMorePopular, int num) throws IOException
    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.
      `contexts` - contexts to filter the lookup by, or null if all contexts are allowed; if the suggestion contains any of the contexts, it's a match
      `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)
    Throws:
      `IOException`

  - ### lookup

    public List<Lookup.LookupResult> lookup(CharSequence key, BooleanQuery contextFilerQuery, int num, boolean allTermsRequired, boolean doHighlight) throws IOException
    Look up a key and return possible completion for this key. This needs to be overridden by all implementing classes as the default implementation just returns null
    Parameters:
      `key` - the lookup key
      `contextFilerQuery` - A query for further filtering the result of the key lookup
      `num` - maximum number of results to return
      `allTermsRequired` - true is all terms are required
      `doHighlight` - set to true if key should be highlighted
    Returns:
      a list of suggestions/completions. The default implementation returns null, meaning each @Lookup implementation should override this and provide their own implementation
    Throws:
      `IOException` - when IO exception occurs

  - ### store

    public abstract boolean store(DataOutput output) throws IOException
    Persist the constructed lookup data to a directory. Optional operation.
    Parameters:
      `output` - `DataOutput` 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(DataInput input) throws IOException
    Discard current lookup data and load it from a previously saved copy. Optional operation.
    Parameters:
      `input` - the `DataInput` to load the lookup data.
    Returns:
      true if completed successfully, false if unsuccessful or not supported.
    Throws:
      `IOException` - when fatal IO error occurs.