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
`protected` `PointRangeQuery(String field, byte[] lowerPoint, byte[] upperPoint, int numDims)` Expert: create a multidimensional range query for point values.

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`static void` `checkArgs(String field, Object lowerPoint, Object upperPoint)` Check preconditions for all factory methods
`Weight` `createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)` Expert: Constructs an appropriate Weight implementation for this query.
`boolean` `equals(Object o)` Override and implement query instance equivalence properly in a subclass.
`int` `getBytesPerDim()`
`String` `getField()`
`byte[]` `getLowerPoint()`
`int` `getNumDims()`
`byte[]` `getUpperPoint()`
`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.
`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 Detail

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

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

Overrides:
  `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`
  `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 that 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