Package org.apache.lucene.search.suggest.document

# Class SuggestField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.search.suggest.document.SuggestField

All Implemented Interfaces:
  `IndexableField`

Direct Known Subclasses:
  `ContextSuggestField`

public class SuggestField extends Field
Field that indexes a string value and a weight as a weighted completion against a named suggester. Field is tokenized, not stored and stores documents, frequencies and positions. Field can be used to provide near real time document suggestions.

Besides the usual `Analyzer`s, `CompletionAnalyzer` can be used to tune suggest field only parameters (e.g. preserving token separators, preserving position increments when converting the token stream to an automaton)

Example indexing usage:

     document.add(new SuggestField(name, "suggestion", 4));

To perform document suggestions based on the field, use `SuggestIndexSearcher.suggest(CompletionQuery, int, boolean)`

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

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.lucene.document.Field

  `Field.Store`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final FieldType`
  `FIELD_TYPE`
  Default field type for suggest field

  ### Fields inherited from class org.apache.lucene.document.Field

  `fieldsData, name, type`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SuggestField(String name, String value, int weight)`
  Creates a `SuggestField`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TokenStream`
  `tokenStream(Analyzer analyzer, TokenStream reuse)`
  `protected byte`
  `type()`
  Returns a byte to denote the type of the field
  `protected CompletionTokenStream`
  `wrapTokenStream(TokenStream stream)`
  Wraps a `stream` with a CompletionTokenStream.

  ### Methods inherited from class org.apache.lucene.document.Field

  `binaryValue, fieldType, getCharSequenceValue, invertableType, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, storedValue, stringValue, tokenStreamValue, toString`

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

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

- ## Field Details

  - ### FIELD_TYPE

    public static final FieldType FIELD_TYPE
    Default field type for suggest field

- ## Constructor Details

  - ### SuggestField

    public SuggestField(String name, String value, int weight)
    Creates a `SuggestField`
    Parameters:
      `name` - field name
      `value` - field value to get suggestions on
      `weight` - field weight
    Throws:
      `IllegalArgumentException` - if either the name or value is null, if value is an empty string, if the weight is negative, if value contains any reserved characters

- ## Method Details

  - ### tokenStream

    public TokenStream tokenStream(Analyzer analyzer, TokenStream reuse)
    Specified by:
      `tokenStream` in interface `IndexableField`
    Overrides:
      `tokenStream` in class `Field`

  - ### wrapTokenStream

    protected CompletionTokenStream wrapTokenStream(TokenStream stream)
    Wraps a `stream` with a CompletionTokenStream.

    Subclasses can override this method to change the indexing pipeline.

  - ### type

    protected byte type()
    Returns a byte to denote the type of the field