org.apache.lucene.document

## Class IntRange

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

All Implemented Interfaces:
  IndexableField

    public class IntRange
    extends Field

An indexed Integer 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 integer 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 `Integer.MIN_VALUE` and `Integer.MAX_VALUE`.

This field defines the following static factory methods for common search operations over integer 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
`static int` `BYTES` stores integer values so number of bytes is 4

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

`fieldsData, name, tokenStream, type`

### Constructor Summary

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

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`int` `getMax(int dimension)` Get the max value for the given dimension
`int` `getMin(int dimension)` Get the min value for the given dimension
`static Query` `newContainsQuery(String field, int[] min, int[] max)` Create a query for matching indexed ranges that contain the defined range.
`static Query` `newCrossesQuery(String field, int[] min, int[] max)` Create a query for matching indexed ranges that cross the defined range.
`static Query` `newIntersectsQuery(String field, int[] min, int[] max)` Create a query for matching indexed ranges that intersect the defined range.
`static Query` `newWithinQuery(String field, int[] min, int[] max)` Create a query for matching indexed ranges that are within the defined range.
`void` `setRangeValues(int[] min, int[] 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, name, numericValue, readerValue, setBytesValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, 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`

### Field Detail

#### BYTES

    public static final int BYTES

stores integer values so number of bytes is 4

See Also:
  Constant Field Values

### Constructor Detail

#### IntRange

    public IntRange(String name,
                    int[] min,
                    int[] max)

Create a new IntRange 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 Detail

#### setRangeValues

    public void setRangeValues(int[] min,
                               int[] max)

Changes the values of the field.

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

#### getMin

    public int getMin(int dimension)

Get the min value for the given dimension

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

#### getMax

    public int 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,
                                           int[] min,
                                           int[] 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 `Integer.MIN_VALUE`)
  `max` - array of max values. (accepts `Integer.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,
                                         int[] min,
                                         int[] max)

Create a query for matching indexed ranges that contain the defined range.

Parameters:
  `field` - field name. must not be null.
  `min` - array of min values. (accepts `Integer.MIN_VALUE`)
  `max` - array of max values. (accepts `Integer.MAX_VALUE`)
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,
                                       int[] min,
                                       int[] 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 `Integer.MIN_VALUE`)
  `max` - array of max values. (accepts `Integer.MAX_VALUE`)
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,
                                        int[] min,
                                        int[] 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 `Integer.MIN_VALUE`)
  `max` - array of max values. (accepts `Integer.MAX_VALUE`)
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`