Package org.apache.lucene.document

## Class FloatField

- java.lang.Object
- - org.apache.lucene.document.Field
  - - org.apache.lucene.document.FloatField

- All Implemented Interfaces:
    `IndexableField`

      public final class FloatField
      extends Field

  Field that stores a per-document `float` value for scoring, sorting or value retrieval and index the field for fast range filters. If you need more fine-grained control you can use `FloatPoint`, `FloatDocValuesField` and `StoredField`.

  This field defines static factory methods for creating common queries:

  - `newExactQuery(String, float)` for matching an exact 1D point.
  - `newRangeQuery(String, float, float)` for matching a 1D range.
  - `newSetQuery(String, float...)` for matching a 1D set.
  See Also:
    `PointValues`

- - ### Nested Class Summary

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

      `Field.Store`

  - ### Field Summary

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

      `fieldsData, name, tokenStream, type`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `FloatField​(String name, float value)` | Deprecated. Use `FloatField(String, float, Field.Store)` with `Field.Store.NO` instead.
    `FloatField​(String name, float value, Field.Store stored)` | Creates a new FloatField, indexing the provided point, storing it as a DocValue, and optionally storing it as a stored field.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `BytesRef` | `binaryValue()` | Non-null if this field has a binary value
    `static Query` | `newExactQuery​(String field, float value)` | Create a query for matching an exact float value.
    `static Query` | `newRangeQuery​(String field, float lowerValue, float upperValue)` | Create a range query for float values.
    `static Query` | `newSetQuery​(String field, float... values)` | Create a query matching values in a supplied set
    `static SortField` | `newSortField​(String field, boolean reverse, SortedNumericSelector.Type selector)` | Create a new `SortField` for float values.
    `void` | `setFloatValue​(float value)` | Expert: change the value of this field.
    `void` | `setLongValue​(long value)` | Expert: change the value of this field.
    `StoredValue` | `storedValue()` | Stored value.
    `String` | `toString()` | Prints a Field for human consumption.

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

      `fieldType, getCharSequenceValue, invertableType, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setIntValue, setReaderValue, setShortValue, setStringValue, setTokenStream, stringValue, tokenStream, tokenStreamValue`

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

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

- - ### Constructor Detail

    - #### FloatField

          @Deprecated
          public FloatField​(String name,
                            float value)

      Deprecated.
      Use `FloatField(String, float, Field.Store)` with `Field.Store.NO` instead.
      Creates a new FloatField, indexing the provided point and storing it as a DocValue
      Parameters:
        `name` - field name
        `value` - the float value
      Throws:
        `IllegalArgumentException` - if the field name or value is null.

    - #### FloatField

          public FloatField​(String name,
                            float value,
                            Field.Store stored)

      Creates a new FloatField, indexing the provided point, storing it as a DocValue, and optionally storing it as a stored field.
      Parameters:
        `name` - field name
        `value` - the float value
        `stored` - whether to store the field
      Throws:
        `IllegalArgumentException` - if the field name or value is null.

  - ### Method Detail

    - #### binaryValue

          public BytesRef binaryValue()

      Description copied from interface: `IndexableField`
      Non-null if this field has a binary value
      Specified by:
        `binaryValue` in interface `IndexableField`
      Overrides:
        `binaryValue` in class `Field`

    - #### storedValue

          public StoredValue storedValue()

      Description copied from interface: `IndexableField`
      Stored value. This method is called to populate stored fields and must return a non-null value if the field stored.
      Specified by:
        `storedValue` in interface `IndexableField`
      Overrides:
        `storedValue` in class `Field`

    - #### toString

          public String toString()

      Description copied from class: `Field`
      Prints a Field for human consumption.
      Overrides:
        `toString` in class `Field`

    - #### setFloatValue

          public void setFloatValue​(float value)

      Description copied from class: `Field`
      Expert: change the value of this field. See `Field.setStringValue(String)`.
      Overrides:
        `setFloatValue` in class `Field`

    - #### setLongValue

          public void setLongValue​(long value)

      Description copied from class: `Field`
      Expert: change the value of this field. See `Field.setStringValue(String)`.
      Overrides:
        `setLongValue` in class `Field`

    - #### newExactQuery

          public static Query newExactQuery​(String field,
                                            float value)

      Create a query for matching an exact float value.
      Parameters:
        `field` - field name. must not be `null`.
        `value` - exact value
      Returns:
        a query matching documents with this exact value
      Throws:
        `IllegalArgumentException` - if `field` is null.

    - #### newRangeQuery

          public static Query newRangeQuery​(String field,
                                            float lowerValue,
                                            float upperValue)

      Create a range query for float values.

      You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting `lowerValue = Float.NEGATIVE_INFINITY` or `upperValue = Float.POSITIVE_INFINITY`.

      Range comparisons are consistent with `Float.compareTo(Float)`.

      Parameters:
        `field` - field name. must not be `null`.
        `lowerValue` - lower portion of the range (inclusive).
        `upperValue` - upper portion of the range (inclusive).
      Returns:
        a query matching documents within this range.
      Throws:
        `IllegalArgumentException` - if `field` is null.

    - #### newSetQuery

          public static Query newSetQuery​(String field,
                                          float... values)

      Create a query matching values in a supplied set
      Parameters:
        `field` - field name. must not be `null`.
        `values` - float values
      Returns:
        a query matching documents within this set.
      Throws:
        `IllegalArgumentException` - if `field` is null.

    - #### newSortField

          public static SortField newSortField​(String field,
                                               boolean reverse,
                                               SortedNumericSelector.Type selector)

      Create a new `SortField` for float values.
      Parameters:
        `field` - field name. must not be `null`.
        `reverse` - true if natural order should be reversed.
        `selector` - custom selector type for choosing the sort value from the set.