Package org.apache.lucene.document

# Class FloatRange

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.FloatRange

All Implemented Interfaces:
  `IndexableField`

public class FloatRange extends Field
An indexed Float Range field.

This field indexes dimensional ranges defined as min/max pairs. It supports up to a maximum of 4 dimensions (indexed as 8 numeric values). With 1 dimension representing a single float range, 2 dimensions representing a bounding box, 3 dimensions a bounding cube, and 4 dimensions a tesseract.

Multiple values for the same field in one document is supported, and open ended ranges can be defined using `Float.NEGATIVE_INFINITY` and `Float.POSITIVE_INFINITY`.

This field defines the following static factory methods for common search operations over float ranges:

- `newIntersectsQuery()` matches ranges that intersect the defined search range.
- `newWithinQuery()` matches ranges that are within the defined search range.
- `newContainsQuery()` matches ranges that contain the defined search range.

## Nested Class Summary

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

`Field.Store`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`BYTES`
stores float values so number of bytes is 4

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

`fieldsData, name, type`

## Constructor Summary

Constructors
Constructor
Description
`FloatRange(String name, float[] min, float[] max)`
Create a new FloatRange type, from min/max parallel arrays

## Method Summary

Modifier and Type
Method
Description
`float`
`getMax(int dimension)`
Get the max value for the given dimension
`float`
`getMin(int dimension)`
Get the min value for the given dimension
`static Query`
`newContainsQuery(String field, float[] min, float[] max)`
Create a query for matching indexed float ranges that contain the defined range.
`static Query`
`newCrossesQuery(String field, float[] min, float[] max)`
Create a query for matching indexed ranges that cross the defined range.
`static Query`
`newIntersectsQuery(String field, float[] min, float[] max)`
Create a query for matching indexed ranges that intersect the defined range.
`static Query`
`newWithinQuery(String field, float[] min, float[] max)`
Create a query for matching indexed ranges that are within the defined range.
`void`
`setRangeValues(float[] min, float[] max)`
Changes the values of the field.
`String`
`toString()`
Prints a Field for human consumption.

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

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

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

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

## Field Details

### BYTES

public static final int BYTES
stores float values so number of bytes is 4

See Also:
  - Constant Field Values

## Constructor Details

### FloatRange

public FloatRange(String name, float[] min, float[] max)
Create a new FloatRange type, from min/max parallel arrays

Parameters:
  `name` - field name. must not be null.
  `min` - range min values; each entry is the min value for the dimension
  `max` - range max values; each entry is the max value for the dimension

## Method Details

### setRangeValues

public void setRangeValues(float[] min, float[] max)
Changes the values of the field.

Parameters:
  `min` - array of min values. (accepts `Float.NEGATIVE_INFINITY`)
  `max` - array of max values. (accepts `Float.POSITIVE_INFINITY`)
Throws:
  `IllegalArgumentException` - if `min` or `max` is invalid

### getMin

public float getMin(int dimension)
Get the min value for the given dimension

Parameters:
  `dimension` - the dimension, always positive
Returns:
  the decoded min value

### getMax

public float getMax(int dimension)
Get the max value for the given dimension

Parameters:
  `dimension` - the dimension, always positive
Returns:
  the decoded max value

### newIntersectsQuery

public static Query newIntersectsQuery(String field, float[] min, float[] max)
Create a query for matching indexed ranges that intersect the defined range.

Parameters:
  `field` - field name. must not be null.
  `min` - array of min values. (accepts `Float.NEGATIVE_INFINITY`)
  `max` - array of max values. (accepts `Float.MAX_VALUE`)
Returns:
  query for matching intersecting ranges (overlap, within, or contains)
Throws:
  `IllegalArgumentException` - if `field` is null, `min` or `max` is invalid

### newContainsQuery

public static Query newContainsQuery(String field, float[] min, float[] max)
Create a query for matching indexed float ranges that contain the defined range.

Parameters:
  `field` - field name. must not be null.
  `min` - array of min values. (accepts `Float.NEGATIVE_INFINITY`)
  `max` - array of max values. (accepts `Float.POSITIVE_INFINITY`)
Returns:
  query for matching ranges that contain the defined range
Throws:
  `IllegalArgumentException` - if `field` is null, `min` or `max` is invalid

### newWithinQuery

public static Query newWithinQuery(String field, float[] min, float[] max)
Create a query for matching indexed ranges that are within the defined range.

Parameters:
  `field` - field name. must not be null.
  `min` - array of min values. (accepts `Float.NEGATIVE_INFINITY`)
  `max` - array of max values. (accepts `Float.POSITIVE_INFINITY`)
Returns:
  query for matching ranges within the defined range
Throws:
  `IllegalArgumentException` - if `field` is null, `min` or `max` is invalid

### newCrossesQuery

public static Query newCrossesQuery(String field, float[] min, float[] max)
Create a query for matching indexed ranges that cross the defined range. A CROSSES is defined as any set of ranges that are not disjoint and not wholly contained by the query. Effectively, its the complement of union(WITHIN, DISJOINT).

Parameters:
  `field` - field name. must not be null.
  `min` - array of min values. (accepts `Float.NEGATIVE_INFINITY`)
  `max` - array of max values. (accepts `Float.POSITIVE_INFINITY`)
Returns:
  query for matching ranges within the defined range
Throws:
  `IllegalArgumentException` - if `field` is null, `min` or `max` is invalid

### toString

public String toString()
Description copied from class: `Field`
Prints a Field for human consumption.

Overrides:
  `toString` in class `Field`