org.apache.lucene.index

## Interface IndexableField

All Known Implementing Classes:
  BinaryDocValuesField, BinaryPoint, DoubleDocValuesField, DoublePoint, DoubleRange, DoubleRangeDocValuesField, FeatureField, Field, FloatDocValuesField, FloatPoint, FloatRange, FloatRangeDocValuesField, IntPoint, IntRange, IntRangeDocValuesField, LatLonDocValuesField, LatLonPoint, LongPoint, LongRange, LongRangeDocValuesField, NumericDocValuesField, SortedDocValuesField, SortedNumericDocValuesField, SortedSetDocValuesField, StoredField, StoredFieldsWriter.MergeVisitor, StringField, TextField

    public interface IndexableField

Represents a single field for indexing. IndexWriter consumes Iterable<IndexableField> as a document.

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

### Method Summary

All Methods Instance Methods Abstract Methods Default Methods
`BytesRef` `binaryValue()` Non-null if this field has a binary value
`IndexableFieldType` `fieldType()` `IndexableFieldType` describing the properties of this field.
`default CharSequence` `getCharSequenceValue()` Non-null if this field has a string value
`String` `name()` Field name
`Number` `numericValue()` Non-null if this field has a numeric value
`Reader` `readerValue()` Non-null if this field has a Reader value
`String` `stringValue()` Non-null if this field has a string value
`TokenStream` `tokenStream(Analyzer analyzer, TokenStream reuse)` Creates the TokenStream used for indexing this field.

### Method Detail

#### name

    String name()

Field name

#### fieldType

    IndexableFieldType fieldType()

`IndexableFieldType` describing the properties of this field.

#### tokenStream

    TokenStream tokenStream(Analyzer analyzer,
                            TokenStream reuse)

Creates the TokenStream used for indexing this field. If appropriate, implementations should use the given Analyzer to create the TokenStreams.

Parameters:
  `analyzer` - Analyzer that should be used to create the TokenStreams from
  `reuse` - TokenStream for a previous instance of this field name. This allows custom field types (like StringField and NumericField) that do not use the analyzer to still have good performance. Note: the passed-in type may be inappropriate, for example if you mix up different types of Fields for the same field name. So it's the responsibility of the implementation to check.
Returns:
  TokenStream value for indexing the document. Should always return a non-null value if the field is to be indexed

#### binaryValue

    BytesRef binaryValue()

Non-null if this field has a binary value

#### stringValue

    String stringValue()

Non-null if this field has a string value

#### getCharSequenceValue

    default CharSequence getCharSequenceValue()

Non-null if this field has a string value

#### readerValue

    Reader readerValue()

Non-null if this field has a Reader value

#### numericValue

    Number numericValue()

Non-null if this field has a numeric value