Class SortedNumericDocValuesField
- All Implemented Interfaces:
IndexableField
long
values for scoring, sorting or value
retrieval. Here's an example usage:
document.add(new SortedNumericDocValuesField(name, 5L)); document.add(new SortedNumericDocValuesField(name, 14L));
Note that if you want to encode doubles or floats with proper sort order, you will need to
encode them with NumericUtils
:
document.add(new SortedNumericDocValuesField(name, NumericUtils.floatToSortableInt(-5.3f)));
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
FieldsFields inherited from class org.apache.lucene.document.Field
fieldsData, name, tokenStream, type
-
Constructor Summary
ConstructorsConstructorDescriptionSortedNumericDocValuesField
(String name, long value) Creates a new DocValues field with the specified 64-bit long value -
Method Summary
Modifier and TypeMethodDescriptionstatic 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 betweenlowerValue
andupperValue
included.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, toString
-
Field Details
-
TYPE
Type for sorted numeric DocValues.
-
-
Constructor Details
-
SortedNumericDocValuesField
Creates a new DocValues field with the specified 64-bit long value- Parameters:
name
- field namevalue
- 64-bit long value- Throws:
IllegalArgumentException
- if the field name is null
-
-
Method Details
-
newSlowRangeQuery
Create a range query that matches all documents whose value is betweenlowerValue
andupperValue
included.You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting
lowerValue = Long.MIN_VALUE
orupperValue = Long.MAX_VALUE
.Ranges are inclusive. For exclusive ranges, pass
Math.addExact(lowerValue, 1)
orMath.addExact(upperValue, -1)
.This query also works with fields that have indexed
NumericDocValuesField
s.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 asLongPoint.newRangeQuery(java.lang.String, long, long)
. -
newSlowExactQuery
Create a query for matching an exact long value.This query also works with fields that have indexed
NumericDocValuesField
s.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 asLongPoint.newExactQuery(java.lang.String, long)
.
-