- java.lang.Object
-
- org.apache.lucene.search.Query
-
- org.apache.lucene.document.RangeFieldQuery
-
public abstract class RangeFieldQuery extends Query
Query class for searchingRangeField
types by a definedPointValues.Relation
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RangeFieldQuery.QueryType
Used byRangeFieldQuery
to check how each internal or leaf node relates to the query.
-
Field Summary
Fields Modifier and Type Field Description (package private) int
bytesPerDim
number of bytes per dimension(package private) ArrayUtil.ByteArrayComparator
comparator
ByteArrayComparator selected by bytesPerDim(package private) java.lang.String
field
field name(package private) int
numDims
number of dimensions - max 4(package private) RangeFieldQuery.QueryType
queryType
query relation intersects:CELL_CROSSES_QUERY
, contains:CELL_CONTAINS_QUERY
, within:CELL_WITHIN_QUERY
(package private) byte[]
ranges
ranges encoded as a sortable byte array
-
Constructor Summary
Constructors Modifier Constructor Description protected
RangeFieldQuery(java.lang.String field, byte[] ranges, int numDims, RangeFieldQuery.QueryType queryType)
Create a query for searching indexed ranges that match the provided relation.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private static void
checkArgs(java.lang.String field, byte[] ranges, int numDims)
check input argumentsprivate void
checkFieldInfo(FieldInfo fieldInfo)
Check indexed field info against the provided query data.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.protected boolean
equalsTo(RangeFieldQuery other)
Check equality of two RangeFieldQuery objectsint
hashCode()
Override and implement query hash code properly in a subclass.protected abstract java.lang.String
toString(byte[] ranges, int dimension)
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, withfield
assumed to be the default field and omitted.void
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries.
-
-
-
Field Detail
-
field
final java.lang.String field
field name
-
queryType
final RangeFieldQuery.QueryType queryType
query relation intersects:CELL_CROSSES_QUERY
, contains:CELL_CONTAINS_QUERY
, within:CELL_WITHIN_QUERY
-
numDims
final int numDims
number of dimensions - max 4
-
ranges
final byte[] ranges
ranges encoded as a sortable byte array
-
bytesPerDim
final int bytesPerDim
number of bytes per dimension
-
comparator
final ArrayUtil.ByteArrayComparator comparator
ByteArrayComparator selected by bytesPerDim
-
-
Constructor Detail
-
RangeFieldQuery
protected RangeFieldQuery(java.lang.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 theRangeField
implementationqueryType
- the query relation
-
-
Method Detail
-
checkArgs
private static void checkArgs(java.lang.String field, byte[] ranges, int numDims)
check input arguments
-
checkFieldInfo
private void checkFieldInfo(FieldInfo fieldInfo)
Check indexed field info against the provided query data.
-
visit
public void visit(QueryVisitor visitor)
Description copied from class:Query
Recurse through the query tree, visiting any child queries.
-
createWeight
public final Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.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 classQuery
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.- Throws:
java.io.IOException
-
hashCode
public int hashCode()
Description copied from class:Query
Override and implement query hash code properly in a subclass. This is required so thatQueryCache
works properly.- Specified by:
hashCode
in classQuery
- See Also:
Query.equals(Object)
-
equals
public final boolean equals(java.lang.Object o)
Description copied from class:Query
Override and implement query instance equivalence properly in a subclass. This is required so thatQueryCache
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 classQuery
- See Also:
Query.sameClassAs(Object)
,Query.classHash()
-
equalsTo
protected boolean equalsTo(RangeFieldQuery other)
Check equality of two RangeFieldQuery objects
-
toString
public java.lang.String toString(java.lang.String field)
Description copied from class:Query
Prints a query to a string, withfield
assumed to be the default field and omitted.
-
toString
protected abstract java.lang.String toString(byte[] ranges, int dimension)
Returns a string of a single value in a human-readable format for debugging. This is used byQuery.toString()
.- Parameters:
dimension
- dimension of the particular valueranges
- encoded ranges, never null- Returns:
- human readable value for debugging
-
-