Package org.apache.lucene.document

# Class RangeFieldQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.document.RangeFieldQuery

public abstract class RangeFieldQuery extends Query
Query class for searching `RangeField` types by a defined `PointValues.Relation`.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`RangeFieldQuery.QueryType`
Used by `RangeFieldQuery` to check how each internal or leaf node relates to the query.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`RangeFieldQuery(String field, byte[] ranges, int numDims, RangeFieldQuery.QueryType queryType)`
Create a query for searching indexed ranges that match the provided relation.

## Method Summary

Modifier and Type
Method
Description
`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.
`protected boolean`
`equalsTo(RangeFieldQuery other)`
Check equality of two RangeFieldQuery objects
`int`
`hashCode()`
Override and implement query hash code properly in a subclass.
`protected abstract String`
`toString(byte[] ranges, int dimension)`
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 Details

### RangeFieldQuery

protected RangeFieldQuery(String field, byte[] ranges, int numDims, RangeFieldQuery.QueryType queryType)
Create a query for searching indexed ranges that match the provided relation.

Parameters:
  `field` - field name. must not be null.
  `ranges` - encoded range values; this is done by the `RangeField` implementation
  `queryType` - the query relation

## Method Details

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

### hashCode

public 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()`

### equalsTo

protected boolean equalsTo(RangeFieldQuery other)
Check equality of two RangeFieldQuery objects

### toString

public 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(byte[] ranges, int dimension)
Returns a string of a single value in a human-readable format for debugging. This is used by `Query.toString()`.

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