Class PointRangeQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.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:
WARNING: This API is experimental and might change in incompatible ways in the next release.
  • Constructor Details

    • 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 Details

    • 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:
    • 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:
    • 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