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.
  • Field Details

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