Class IntPoint
- All Implemented Interfaces:
IndexableField
int field for fast range filters. If you also need to store the value, you
should add a separate StoredField instance.
Finding all documents within an N-dimensional shape or range at search time is efficient. Multiple values for the same field in one document is allowed.
This field defines static factory methods for creating common queries:
newExactQuery(String, int)for matching an exact 1D point.newSetQuery(String, int...)for matching a set of 1D values.newRangeQuery(String, int, int)for matching a 1D range.newRangeQuery(String, int[], int[])for matching points/ranges in n-dimensional space.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.document.Field
Field.Store -
Field Summary
Fields inherited from class org.apache.lucene.document.Field
fieldsData, name, type -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic intdecodeDimension(byte[] value, int offset) Decode single integer dimensionstatic voidencodeDimension(int value, byte[] dest, int offset) Encode single integer dimensionstatic QuerynewExactQuery(String field, int value) Create a query for matching an exact integer value.static QuerynewRangeQuery(String field, int[] lowerValue, int[] upperValue) Create a range query for n-dimensional integer values.static QuerynewRangeQuery(String field, int lowerValue, int upperValue) Create a range query for integer values.static QuerynewSetQuery(String field, int... values) Create a query matching any of the specified 1D values.static QuerynewSetQuery(String field, Collection<Integer> values) Create a query matching any of the specified 1D values.Non-null if this field has a numeric valuestatic BytesRefpack(int... point) Pack an integer point into a BytesRefvoidsetBytesValue(BytesRef bytes) Expert: change the value of this field.voidsetIntValue(int value) Expert: change the value of this field.voidsetIntValues(int... point) Change the values of this fieldtoString()Prints a Field for human consumption.Methods inherited from class org.apache.lucene.document.Field
binaryValue, fieldType, getCharSequenceValue, invertableType, name, readerValue, setBytesValue, setByteValue, setDoubleValue, setFloatValue, setLongValue, setReaderValue, setShortValue, setStringValue, setTokenStream, storedValue, stringValue, tokenStream, tokenStreamValue
-
Constructor Details
-
IntPoint
Creates a new IntPoint, indexing the provided N-dimensional int point.- Parameters:
name- field namepoint- int[] value- Throws:
IllegalArgumentException- if the field name or value is null.
-
-
Method Details
-
setIntValue
public void setIntValue(int value) Description copied from class:FieldExpert: change the value of this field. SeeField.setStringValue(String).- Overrides:
setIntValuein classField
-
setIntValues
public void setIntValues(int... point) Change the values of this field -
setBytesValue
Description copied from class:FieldExpert: change the value of this field. SeeField.setStringValue(String).NOTE: the provided BytesRef is not copied so be sure not to change it until you're done with this field.
- Overrides:
setBytesValuein classField
-
numericValue
Description copied from interface:IndexableFieldNon-null if this field has a numeric value- Specified by:
numericValuein interfaceIndexableField- Overrides:
numericValuein classField
-
pack
Pack an integer point into a BytesRef- Parameters:
point- int[] value- Throws:
IllegalArgumentException- is the value is null or of zero length
-
toString
Description copied from class:FieldPrints a Field for human consumption. -
encodeDimension
public static void encodeDimension(int value, byte[] dest, int offset) Encode single integer dimension -
decodeDimension
public static int decodeDimension(byte[] value, int offset) Decode single integer dimension -
newExactQuery
Create a query for matching an exact integer value.This is for simple one-dimension points, for multidimensional points use
newRangeQuery(String, int[], int[])instead.- Parameters:
field- field name. must not benull.value- exact value- Returns:
- a query matching documents with this exact value
- Throws:
IllegalArgumentException- iffieldis null.
-
newRangeQuery
Create a range query for integer values.This is for simple one-dimension ranges, for multidimensional ranges use
newRangeQuery(String, int[], int[])instead.You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting
lowerValue = Integer.MIN_VALUEorupperValue = Integer.MAX_VALUE.Ranges are inclusive. For exclusive ranges, pass
Math.addExact(lowerValue, 1)orMath.addExact(upperValue, -1).- Parameters:
field- field name. must not benull.lowerValue- lower portion of the range (inclusive).upperValue- upper portion of the range (inclusive).- Returns:
- a query matching documents within this range.
- Throws:
IllegalArgumentException- iffieldis null.
-
newRangeQuery
Create a range query for n-dimensional integer values.You can have half-open ranges (which are in fact </≤ or >/≥ queries) by setting
lowerValue[i] = Integer.MIN_VALUEorupperValue[i] = Integer.MAX_VALUE.Ranges are inclusive. For exclusive ranges, pass
Math.addExact(lowerValue[i], 1)orMath.addExact(upperValue[i], -1).- Parameters:
field- field name. must not benull.lowerValue- lower portion of the range (inclusive). must not benull.upperValue- upper portion of the range (inclusive). must not benull.- Returns:
- a query matching documents within this range.
- Throws:
IllegalArgumentException- iffieldis null, iflowerValueis null, ifupperValueis null, or iflowerValue.length != upperValue.length
-
newSetQuery
Create a query matching any of the specified 1D values. This is the points equivalent ofTermsQuery.- Parameters:
field- field name. must not benull.values- all values to match
-
newSetQuery
Create a query matching any of the specified 1D values. This is the points equivalent ofTermsQuery.- Parameters:
field- field name. must not benull.values- all values to match
-