Package org.apache.lucene.search

# Class PointRangeQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.PointRangeQuery

public abstract class PointRangeQuery extends Query
Abstract class for range queries against single or multidimensional points such as `IntPoint`.

This is for subclasses and works on the underlying binary encoding: to create range queries for lucene's standard `Point` types, refer to factory methods on those classes, e.g. `IntPoint.newRangeQuery()` for fields indexed with `IntPoint`.

For a single-dimensional field this query is a simple range query; in a multi-dimensional field it's a box shape.

See Also:
  - `PointValues`
WARNING: This API is experimental and might change in incompatible ways in the next release.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`PointRangeQuery(String field, byte[] lowerPoint, byte[] upperPoint, int numDims)`
Expert: create a multidimensional range query for point values.

## Method Summary

Modifier and Type
Method
Description
`static void`
`checkArgs(String field, Object lowerPoint, Object upperPoint)`
Check preconditions for all factory methods
`final Weight`
`createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)`
Expert: Constructs an appropriate Weight implementation for this query.
`final boolean`
`equals(Object o)`
Override and implement query instance equivalence properly in a subclass.
`int`
`getBytesPerDim()`
`String`
`getField()`
`byte[]`
`getLowerPoint()`
`int`
`getNumDims()`
`byte[]`
`getUpperPoint()`
`final int`
`hashCode()`
Override and implement query hash code properly in a subclass.
`protected abstract String`
`toString(int dimension, byte[] value)`
Returns a string of a single value in a human-readable format for debugging.
`final String`
`toString(String field)`
Prints a query to a string, with `field` assumed to be the default field and omitted.
`void`
`visit(QueryVisitor visitor)`
Recurse through the query tree, visiting any child queries.

### Methods inherited from class org.apache.lucene.search.Query

`classHash, rewrite, sameClassAs, toString`

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

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

## Constructor Details

### PointRangeQuery

protected PointRangeQuery(String field, byte[] lowerPoint, byte[] upperPoint, int numDims)
Expert: create a multidimensional range query for point values.

Parameters:
  `field` - field name. must not be `null`.
  `lowerPoint` - lower portion of the range (inclusive).
  `upperPoint` - upper portion of the range (inclusive).
  `numDims` - number of dimensions.
Throws:
  `IllegalArgumentException` - if `field` is null, or if `lowerValue.length != upperValue.length`

## Method Details

### checkArgs

public static void checkArgs(String field, Object lowerPoint, Object upperPoint)
Check preconditions for all factory methods

Throws:
  `IllegalArgumentException` - if `field`, `lowerPoint` or `upperPoint` are null.

### visit

public void visit(QueryVisitor visitor)
Description copied from class: `Query`
Recurse through the query tree, visiting any child queries.

Specified by:
  `visit` in class `Query`
Parameters:
  `visitor` - a QueryVisitor to be called by each query in the tree

### createWeight

public final Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException
Description copied from class: `Query`
Expert: Constructs an appropriate Weight implementation for this query.

Only implemented by primitive queries, which re-write to themselves.

Overrides:
  `createWeight` in class `Query`
Parameters:
  `scoreMode` - How the produced scorers will be consumed.
  `boost` - The boost that is propagated by the parent queries.
Throws:
  `IOException`

### getField

public String getField()

### getNumDims

public int getNumDims()

### getBytesPerDim

public int getBytesPerDim()

### getLowerPoint

public byte[] getLowerPoint()

### getUpperPoint

public byte[] getUpperPoint()

### hashCode

public final int hashCode()
Description copied from class: `Query`
Override and implement query hash code properly in a subclass. This is required so that `QueryCache` works properly.

Specified by:
  `hashCode` in class `Query`
See Also:
  - `Query.equals(Object)`

### equals

public final boolean equals(Object o)
Description copied from class: `Query`
Override and implement query instance equivalence properly in a subclass. This is required so that `QueryCache` works properly.

Typically a query will be equal to another only if it's an instance of the same class and its document-filtering properties are identical to those of the other instance. Utility methods are provided for certain repetitive code.

Specified by:
  `equals` in class `Query`
See Also:
  - `Query.sameClassAs(Object)`
  - `Query.classHash()`

### toString

public final String toString(String field)
Description copied from class: `Query`
Prints a query to a string, with `field` assumed to be the default field and omitted.

Specified by:
  `toString` in class `Query`

### toString

protected abstract String toString(int dimension, byte[] value)
Returns a string of a single value in a human-readable format for debugging. This is used by `Query.toString()`.

Parameters:
  `dimension` - dimension of the particular value
  `value` - single value, never null
Returns:
  human readable value for debugging