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`, `LateInteractionField`, `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

  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 Details

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