org.apache.lucene.document

## Class FloatPoint

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

All Implemented Interfaces:
  IndexableField

    public final class FloatPoint
    extends Field

An indexed `float` field for fast range filters. If you also need to store the value, you should add a separate `StoredField` instance.

Finding all documents within an N-dimensional at search time is efficient. Multiple values for the same field in one document is allowed.

This field defines static factory methods for creating common queries:

- `newExactQuery(String, float)` for matching an exact 1D point.
- `newSetQuery(String, float...)` for matching a set of 1D values.
- `newRangeQuery(String, float, float)` for matching a 1D range.
- `newRangeQuery(String, float[], float[])` for matching points/ranges in n-dimensional space.

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 and Description
`FloatPoint(String name, float... point)` Creates a new FloatPoint, indexing the provided N-dimensional float point.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static float` `decodeDimension(byte[] value, int offset)` Decode single float dimension
`static void` `encodeDimension(float value, byte[] dest, int offset)` Encode single float dimension
`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 n-dimensional float values.
`static Query` `newRangeQuery(String field, float lowerValue, float upperValue)` Create a range query for float values.
`static Query` `newSetQuery(String field, Collection<Float> values)` Create a query matching any of the specified 1D values.
`static Query` `newSetQuery(String field, float... values)` Create a query matching any of the specified 1D values.
`static float` `nextDown(float f)` Return the greatest float that compares less than `f` consistently with `Float.compare(float, float)`.
`static float` `nextUp(float f)` Return the least float that compares greater than `f` consistently with `Float.compare(float, float)`.
`Number` `numericValue()` Non-null if this field has a numeric value
`static BytesRef` `pack(float... point)` Pack a float point into a BytesRef
`void` `setBytesValue(BytesRef bytes)` Expert: change the value of this field.
`void` `setFloatValue(float value)` Expert: change the value of this field.
`void` `setFloatValues(float... point)` Change the values of this field
`String` `toString()` Prints a Field for human consumption.

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

`binaryValue, fieldType, getCharSequenceValue, name, readerValue, setBytesValue, setByteValue, setDoubleValue, setIntValue, setLongValue, 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

#### FloatPoint

    public FloatPoint(String name,
                      float... point)

Creates a new FloatPoint, indexing the provided N-dimensional float point.

Parameters:
  `name` - field name
  `point` - float[] value
Throws:
  `IllegalArgumentException` - if the field name or value is null.

### Method Detail

#### nextUp

    public static float nextUp(float f)

Return the least float that compares greater than `f` consistently with `Float.compare(float, float)`. The only difference with `Math.nextUp(float)` is that this method returns `+0f` when the argument is `-0f`.

#### nextDown

    public static float nextDown(float f)

Return the greatest float that compares less than `f` consistently with `Float.compare(float, float)`. The only difference with `Math.nextDown(float)` is that this method returns `-0f` when the argument is `+0f`.

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

#### setFloatValues

    public void setFloatValues(float... point)

Change the values of this field

#### setBytesValue

    public void setBytesValue(BytesRef bytes)

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

NOTE: the provided BytesRef is not copied so be sure not to change it until you're done with this field.

Overrides:
  `setBytesValue` in class `Field`

#### numericValue

    public Number numericValue()

Description copied from interface: `IndexableField`
Non-null if this field has a numeric value

Specified by:
  `numericValue` in interface `IndexableField`
Overrides:
  `numericValue` in class `Field`

#### pack

    public static BytesRef pack(float... point)

Pack a float point into a BytesRef

Parameters:
  `point` - float[] value
Throws:
  `IllegalArgumentException` - is the value is null or of zero length

#### toString

    public String toString()

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

Overrides:
  `toString` in class `Field`

#### encodeDimension

    public static void encodeDimension(float value,
                                       byte[] dest,
                                       int offset)

Encode single float dimension

#### decodeDimension

    public static float decodeDimension(byte[] value,
                                        int offset)

Decode single float dimension

#### newExactQuery

    public static Query newExactQuery(String field,
                                      float value)

Create a query for matching an exact float value.

This is for simple one-dimension points, for multidimensional points use `newRangeQuery(String, float[], float[])` instead.

Parameters:
  `field` - field name. must not be `null`.
  `value` - float 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.

This is for simple one-dimension ranges, for multidimensional ranges use `newRangeQuery(String, float[], float[])` instead.

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

Ranges are inclusive. For exclusive ranges, pass `nextUp(lowerValue)` or `nextDown(upperValue)`.

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.

#### newRangeQuery

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

Create a range query for n-dimensional float values.

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

Ranges are inclusive. For exclusive ranges, pass `Math#nextUp(lowerValue[i])` or `Math.nextDown(upperValue[i])`.

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

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

#### newSetQuery

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

Create a query matching any of the specified 1D values. This is the points equivalent of `TermsQuery`.

Parameters:
  `field` - field name. must not be `null`.
  `values` - all values to match

#### newSetQuery

    public static Query newSetQuery(String field,
                                    Collection<Float> values)

Create a query matching any of the specified 1D values. This is the points equivalent of `TermsQuery`.

Parameters:
  `field` - field name. must not be `null`.
  `values` - all values to match