Class FunctionRangeQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.queries.function.FunctionRangeQuery

public class FunctionRangeQuery extends Query
A Query wrapping a ValueSource that matches docs in which the values in the value source match a configured range. The score is the float value. This can be a slow query if run by itself since it must visit all docs; ideally it's combined with other queries. It's mostly a wrapper around FunctionValues.getRangeScorer(LeafReaderContext, String, String, boolean, boolean).

A similar class is org.apache.lucene.search.DocValuesRangeQuery in the sandbox module. That one is constant scoring.

See Also:
  • Field Details

    • valueSource

      private final ValueSource valueSource
    • lowerVal

      private final String lowerVal
    • upperVal

      private final String upperVal
    • includeLower

      private final boolean includeLower
    • includeUpper

      private final boolean includeUpper
  • Constructor Details

    • FunctionRangeQuery

      public FunctionRangeQuery(ValueSource valueSource, Number lowerVal, Number upperVal, boolean includeLower, boolean includeUpper)
    • FunctionRangeQuery

      public FunctionRangeQuery(ValueSource valueSource, String lowerVal, String upperVal, boolean includeLower, boolean includeUpper)
  • Method Details

    • getValueSource

      public ValueSource getValueSource()
    • getLowerVal

      public String getLowerVal()
    • getUpperVal

      public String getUpperVal()
    • isIncludeLower

      public boolean isIncludeLower()
    • isIncludeUpper

      public boolean isIncludeUpper()
    • toString

      public 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
    • equals

      public boolean equals(Object other)
      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:
    • equalsTo

      private boolean equalsTo(FunctionRangeQuery other)
    • hashCode

      public 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:
    • 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 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
      Parameters:
      scoreMode - How the produced scorers will be consumed.
      boost - The boost that is propagated by the parent queries.
      Throws:
      IOException