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