Class DoubleField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.DoubleField
All Implemented Interfaces:
IndexableField

public final class DoubleField extends Field
Field that stores a per-document double 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 DoublePoint, DoubleDocValuesField and StoredField.

This field defines static factory methods for creating common queries:

See Also:
  • Constructor Details

    • DoubleField

      @Deprecated public DoubleField(String name, double value)
      Creates a new DoubleField, indexing the provided point and storing it as a DocValue
      Parameters:
      name - field name
      value - the double value
      Throws:
      IllegalArgumentException - if the field name or value is null.
    • DoubleField

      public DoubleField(String name, double value, Field.Store stored)
      Creates a new DoubleField, indexing the provided point, storing it as a DocValue, and optionally storing it as a stored field.
      Parameters:
      name - field name
      value - the double value
      stored - whether to store the field
      Throws:
      IllegalArgumentException - if the field name or value is null.
  • Method Details

    • 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
    • setDoubleValue

      public void setDoubleValue(double value)
      Description copied from class: Field
      Expert: change the value of this field. See Field.setStringValue(String).
      Overrides:
      setDoubleValue 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, double value)
      Create a query for matching an exact double 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, double lowerValue, double upperValue)
      Create a range query for double values.

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

      Range comparisons are consistent with Double.compareTo(Double).

      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, double... values)
      Create a query matching values in a supplied set
      Parameters:
      field - field name. must not be null.
      values - double 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 double 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.