Package org.apache.lucene.document

# Class NumericDocValuesField

java.lang.Object
org.apache.lucene.document.Field
org.apache.lucene.document.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.

## 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 FieldType`
`TYPE`
Type for numeric DocValues.

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

`fieldsData, name, type`

## Constructor Summary

Constructors
Constructor
Description
`NumericDocValuesField(String name, long value)`
Creates a new DocValues field with the specified 64-bit long value
`NumericDocValuesField(String name, Long value)`
Creates a new DocValues field with the specified 64-bit long value

## Method Summary

Modifier and Type
Method
Description
`static NumericDocValuesField`
`indexedField(String name, long value)`
Creates a new `NumericDocValuesField` with the specified 64-bit long value that also creates a `skip index`.
`static Query`
`newSlowExactQuery(String field, long value)`
Create a query for matching an exact long value.
`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.
`static Query`
`newSlowSetQuery(String field, long... values)`
Create a query matching any of the specified values.

### 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, toString`

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

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

## Field Details

### TYPE

public static final FieldType TYPE
Type for numeric DocValues.

## Constructor Details

### 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 Details

### indexedField

public static NumericDocValuesField indexedField(String name, long value)
Creates a new `NumericDocValuesField` with the specified 64-bit long value that also creates a `skip index`.

Parameters:
  `name` - field name
  `value` - 64-bit long value
Throws:
  `IllegalArgumentException` - if the field name is null

### 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)`.

See Also:
  - `IntField.newRangeQuery(java.lang.String, int, int)`
  - `LongField.newRangeQuery(java.lang.String, long, long)`
  - `FloatField.newRangeQuery(java.lang.String, float, float)`
  - `DoubleField.newRangeQuery(java.lang.String, double, double)`

### newSlowSetQuery

public static Query newSlowSetQuery(String field, long... values)
Create a query matching any of the specified values.

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 set query that executes on points, such as `LongPoint.newSetQuery(java.lang.String, long...)`.

See Also:
  - `IntField.newSetQuery(java.lang.String, int...)`
  - `LongField.newSetQuery(java.lang.String, long...)`
  - `FloatField.newSetQuery(java.lang.String, float...)`
  - `DoubleField.newSetQuery(java.lang.String, double...)`

### 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)`.

See Also:
  - `IntField.newExactQuery(java.lang.String, int)`
  - `LongField.newExactQuery(java.lang.String, long)`
  - `FloatField.newExactQuery(java.lang.String, float)`
  - `DoubleField.newExactQuery(java.lang.String, double)`