Class MultiRangeQuery

  • All Implemented Interfaces:
    java.lang.Cloneable

    public abstract class MultiRangeQuery
    extends Query
    implements java.lang.Cloneable
    Abstract class for range queries involving multiple ranges against physical points such as IntPoints All ranges are logically ORed together
    • Field Detail

      • field

        final java.lang.String field
      • numDims

        final int numDims
      • bytesPerDim

        final int bytesPerDim
    • Constructor Detail

      • MultiRangeQuery

        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
        Parameters:
        field - field name. must not be null.
        rangeClauses - Range Clauses for this query
        numDims - number of dimensions.
    • Method Detail

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

        static java.util.List<MultiRangeQuery.RangeClause> mergeOverlappingRanges​(java.util.List<MultiRangeQuery.RangeClause> rangeClauses,
                                                                                  int bytesPerDim)
        Merges overlapping ranges and returns unconnected ranges
        Parameters:
        rangeClauses - some overlapping ranges
        bytesPerDim - bytes per Dimension of the point value
        Returns:
        unconnected ranges
      • 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()
      • 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 to those of the 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