org.apache.lucene.search

## Class MultiRangeQuery

- java.lang.Object
- - org.apache.lucene.search.Query
  - - org.apache.lucene.search.MultiRangeQuery

    public abstract class MultiRangeQuery
    extends Query

Abstract class for range queries involving multiple ranges against physical points such as `IntPoints` All ranges are logically ORed together TODO: Add capability for handling overlapping ranges at rewrite time

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

Nested Classes
`static class` `MultiRangeQuery.Builder` A builder for multirange queries.
`static class` `MultiRangeQuery.RangeClause` Representation of a single clause in a MultiRangeQuery

### Constructor Summary

Constructors
`protected` `MultiRangeQuery(String field, int numDims, int bytesPerDim, List<MultiRangeQuery.RangeClause> rangeClauses)` Expert: create a multidimensional range query with multiple connected ranges

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`Weight` `createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost)`
`boolean` `equals(Object o)`
`int` `getBytesPerDim()`
`String` `getField()`
`int` `getNumDims()`
`int` `hashCode()`
`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)`
`void` `visit(QueryVisitor visitor)`

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

#### MultiRangeQuery

    protected MultiRangeQuery(String field,
                              int numDims,
                              int bytesPerDim,
                              List<MultiRangeQuery.RangeClause> rangeClauses)

Expert: create a multidimensional range query with multiple connected ranges

Parameters:
  `field` - field name. must not be `null`.
  `rangeClauses` - Range Clauses for this query
  `numDims` - number of dimensions.

### Method Detail

#### visit

    public void visit(QueryVisitor visitor)

Overrides:
  `visit` in class `Query`

#### createWeight

    public final Weight createWeight(IndexSearcher searcher,
                                     ScoreMode scoreMode,
                                     float boost)
                              throws IOException

Overrides:
  `createWeight` in class `Query`
Throws:
  `IOException`

#### getField

    public String getField()

#### getNumDims

    public int getNumDims()

#### getBytesPerDim

    public int getBytesPerDim()

#### hashCode

    public final int hashCode()

Specified by:
  `hashCode` in class `Query`

#### equals

    public final boolean equals(Object o)

Specified by:
  `equals` in class `Query`

#### toString

    public final String toString(String field)

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