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 this 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
`static FieldType` `FIELD_TYPE` Default field type for suggest field

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

`fieldsData, name, tokenStream, type`

### Constructor Summary

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

### Method Summary

All Methods Instance Methods Concrete Methods
`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, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setIntValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, stringValue, tokenStreamValue, toString`

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

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

### Field Detail

#### FIELD_TYPE

    public static final FieldType FIELD_TYPE

Default field type for suggest field

### Constructor Detail

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

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