org.apache.lucene.document

## Class DoubleRange

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

- All Implemented Interfaces:
    IndexableField

      public class DoubleRange
      extends Field

  An indexed Double 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 double 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 `Double.NEGATIVE_INFINITY` and `Double.POSITIVE_INFINITY`.

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

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

      `boost, fieldsData, name, tokenStream, type`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `double` | `getMax(int dimension)` Get the max value for the given dimension
    `double` | `getMin(int dimension)` Get the min value for the given dimension
    `static Query` | `newContainsQuery(String field, double[] min, double[] max)` Create a query for matching indexed ranges that contain the defined range.
    `static Query` | `newCrossesQuery(String field, double[] min, double[] max)` Create a query for matching indexed ranges that cross the defined range.
    `static Query` | `newIntersectsQuery(String field, double[] min, double[] max)` Create a query for matching indexed ranges that intersect the defined range.
    `static Query` | `newWithinQuery(String field, double[] min, double[] max)` Create a query for matching indexed ranges that are within the defined range.
    `void` | `setRangeValues(double[] min, double[] 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, boost, fieldType, name, numericValue, readerValue, setBoost, 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 double values so number of bytes is 8
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### DoubleRange

          public DoubleRange(String name,
                             double[] min,
                             double[] max)

      Create a new DoubleRange 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(double[] min,
                                     double[] max)

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

    - #### getMin

          public double getMin(int dimension)

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

    - #### getMax

          public double 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,
                                                 double[] min,
                                                 double[] 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 `Double.NEGATIVE_INFINITY`)
        `max` - array of max values. (accepts `Double.POSITIVE_INFINITY`)
      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,
                                               double[] min,
                                               double[] 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 `Double.MIN_VALUE`)
        `max` - array of max values. (accepts `Double.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,
                                             double[] min,
                                             double[] 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 `Double.MIN_VALUE`)
        `max` - array of max values. (accepts `Double.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,
                                              double[] min,
                                              double[] 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 `Double.MIN_VALUE`)
        `max` - array of max values. (accepts `Double.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`

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.