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.