Class NumericDocValuesField

  • All Implemented Interfaces:
    IndexableField
    Direct Known Subclasses:
    DoubleDocValuesField, FloatDocValuesField

    public class NumericDocValuesField
    extends Field
    Field that stores a per-document long value for scoring, sorting or value retrieval. Here's an example usage:
       document.add(new NumericDocValuesField(name, 22L));
     

    If you also need to store the value, you should add a separate StoredField instance.

    • Field Detail

      • TYPE

        public static final FieldType TYPE
        Type for numeric DocValues.
    • Constructor Detail

      • NumericDocValuesField

        public NumericDocValuesField​(String name,
                                     long value)
        Creates a new DocValues field with the specified 64-bit long value
        Parameters:
        name - field name
        value - 64-bit long value
        Throws:
        IllegalArgumentException - if the field name is null
      • NumericDocValuesField

        public NumericDocValuesField​(String name,
                                     Long value)
        Creates a new DocValues field with the specified 64-bit long value
        Parameters:
        name - field name
        value - 64-bit long value or null if the existing fields value should be removed on update
        Throws:
        IllegalArgumentException - if the field name is null
    • Method Detail

      • newSlowRangeQuery

        public static Query newSlowRangeQuery​(String field,
                                              long lowerValue,
                                              long upperValue)
        Create a range query that matches all documents whose value is between lowerValue and upperValue included.

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

        Ranges are inclusive. For exclusive ranges, pass Math.addExact(lowerValue, 1) or Math.addExact(upperValue, -1).

        NOTE: Such queries cannot efficiently advance to the next match, which makes them slow if they are not ANDed with a selective query. As a consequence, they are best used wrapped in an IndexOrDocValuesQuery, alongside a range query that executes on points, such as LongPoint.newRangeQuery(java.lang.String, long, long).

      • newSlowExactQuery

        public static Query newSlowExactQuery​(String field,
                                              long value)
        Create a query for matching an exact long value.

        NOTE: Such queries cannot efficiently advance to the next match, which makes them slow if they are not ANDed with a selective query. As a consequence, they are best used wrapped in an IndexOrDocValuesQuery, alongside a range query that executes on points, such as LongPoint.newExactQuery(java.lang.String, long).