Package org.apache.lucene.index

## Interface IndexableField

- All Known Implementing Classes:
    `BinaryDocValuesField`, `BinaryPoint`, `DoubleDocValuesField`, `DoubleField`, `DoublePoint`, `DoubleRange`, `DoubleRangeDocValuesField`, `FeatureField`, `Field`, `FloatDocValuesField`, `FloatField`, `FloatPoint`, `FloatRange`, `FloatRangeDocValuesField`, `InetAddressPoint`, `InetAddressRange`, `IntField`, `IntPoint`, `IntRange`, `IntRangeDocValuesField`, `KeywordField`, `KnnByteVectorField`, `KnnFloatVectorField`, `KnnVectorField`, `LatLonDocValuesField`, `LatLonPoint`, `LatLonShapeDocValuesField`, `LongField`, `LongPoint`, `LongRange`, `LongRangeDocValuesField`, `NumericDocValuesField`, `ShapeDocValuesField`, `ShapeField.Triangle`, `SortedDocValuesField`, `SortedNumericDocValuesField`, `SortedSetDocValuesField`, `StoredField`, `StringField`, `TextField`, `XYDocValuesField`, `XYPointField`, `XYShapeDocValuesField`

      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
    Modifier and Type | Method | Description
    --- | --- | ---
    `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
    `InvertableType` | `invertableType()` | Describes how this field should be inverted.
    `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
    `StoredValue` | `storedValue()` | Stored 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

    - #### storedValue

          StoredValue storedValue()

      Stored value. This method is called to populate stored fields and must return a non-null value if the field stored.

    - #### invertableType

          InvertableType invertableType()

      Describes how this field should be inverted. This must return a non-null value if the field indexes terms and postings.