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
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) int bytesPerDim  
      (package private) java.lang.String field  
      (package private) byte[] lowerPoint  
      (package private) int numDims  
      (package private) byte[] upperPoint  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected PointRangeQuery​(java.lang.String field, byte[] lowerPoint, byte[] upperPoint, int numDims)
      Expert: create a multidimensional range query for point values.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      static void checkArgs​(java.lang.String field, java.lang.Object lowerPoint, java.lang.Object upperPoint)
      Check preconditions for all factory methods
      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​(PointRangeQuery other)  
      int getBytesPerDim()  
      java.lang.String getField()  
      byte[] getLowerPoint()  
      int getNumDims()  
      byte[] getUpperPoint()  
      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
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • field

        final java.lang.String field
      • numDims

        final int numDims
      • bytesPerDim

        final int bytesPerDim
      • lowerPoint

        final byte[] lowerPoint
      • upperPoint

        final byte[] upperPoint
    • Constructor Detail

      • PointRangeQuery

        protected PointRangeQuery​(java.lang.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:
        java.lang.IllegalArgumentException - if field is null, or if lowerValue.length != upperValue.length
    • Method Detail

      • checkArgs

        public static void checkArgs​(java.lang.String field,
                                     java.lang.Object lowerPoint,
                                     java.lang.Object upperPoint)
        Check preconditions for all factory methods
        Throws:
        java.lang.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
        Overrides:
        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 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 class Query
        scoreMode - How the produced scorers will be consumed.
        boost - The boost that is propagated by the parent queries.
        Throws:
        java.io.IOException
      • getField

        public java.lang.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​(java.lang.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 java.lang.String toString​(java.lang.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 java.lang.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