public abstract class MultiRangeQuery extends Query
IntPoints
All ranges are logically ORed together
TODO: Add capability for handling overlapping ranges at rewrite timeModifier and Type | Class and Description |
---|---|
static class |
MultiRangeQuery.Builder
A builder for multirange queries.
|
static class |
MultiRangeQuery.RangeClause
Representation of a single clause in a MultiRangeQuery
|
Modifier and Type | Field and Description |
---|---|
(package private) int |
bytesPerDim |
(package private) java.lang.String |
field |
(package private) int |
numDims |
(package private) java.util.List<MultiRangeQuery.RangeClause> |
rangeClauses |
Modifier | Constructor and Description |
---|---|
protected |
MultiRangeQuery(java.lang.String field,
int numDims,
int bytesPerDim,
java.util.List<MultiRangeQuery.RangeClause> rangeClauses)
Expert: create a multidimensional range query with multiple connected ranges
|
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Expert: Constructs an appropriate Weight implementation for this query.
|
boolean |
equals(java.lang.Object o)
Override and implement query instance equivalence properly in a subclass.
|
private boolean |
equalsTo(MultiRangeQuery other) |
int |
getBytesPerDim() |
java.lang.String |
getField() |
int |
getNumDims() |
int |
hashCode()
Override and implement query hash code properly in a subclass.
|
protected abstract java.lang.String |
toString(int dimension,
byte[] value)
Returns a string of a single value in a human-readable format for debugging.
|
java.lang.String |
toString(java.lang.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
|
classHash, rewrite, sameClassAs, toString
final java.lang.String field
final int numDims
final int bytesPerDim
final java.util.List<MultiRangeQuery.RangeClause> rangeClauses
protected MultiRangeQuery(java.lang.String field, int numDims, int bytesPerDim, java.util.List<MultiRangeQuery.RangeClause> rangeClauses)
field
- field name. must not be null
.rangeClauses
- Range Clauses for this querynumDims
- number of dimensions.public void visit(QueryVisitor visitor)
Query
public final Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.java.io.IOException
public java.lang.String getField()
public int getNumDims()
public int getBytesPerDim()
public final int hashCode()
Query
QueryCache
works properly.hashCode
in class Query
Query.equals(Object)
public final boolean equals(java.lang.Object o)
Query
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.equals
in class Query
Query.sameClassAs(Object)
,
Query.classHash()
private boolean equalsTo(MultiRangeQuery other)
public final java.lang.String toString(java.lang.String field)
Query
field
assumed to be the
default field and omitted.protected abstract java.lang.String toString(int dimension, byte[] value)
Query.toString()
.dimension
- dimension of the particular valuevalue
- single value, never null