Class IntervalQuery

java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.queries.intervals.IntervalQuery

public final class IntervalQuery extends Query
A query that retrieves documents containing intervals returned from an IntervalsSource

Static constructor functions for various different sources can be found in the Intervals class

Scores for this query are computed as a function of the sloppy frequency of intervals appearing in a particular document. Sloppy frequency is calculated from the number of matching intervals, and their width, with wider intervals contributing lower values. The scores can be adjusted with two optional parameters:

  • pivot - the sloppy frequency value at which the overall score of the document will equal 0.5. The default value is 1
  • exp - higher values of this parameter make the function grow more slowly below the pivot and faster higher than the pivot. The default value is 1
Optimal values for both pivot and exp depend on the type of queries and corpus of documents being queried.

Scores are bounded to between 0 and 1. For higher contributions, wrap the query in a BoostQuery

  • Field Details

  • Constructor Details

    • IntervalQuery

      public IntervalQuery(String field, IntervalsSource intervalsSource)
      Create a new IntervalQuery
      Parameters:
      field - the field to query
      intervalsSource - an IntervalsSource to retrieve intervals from
    • IntervalQuery

      public IntervalQuery(String field, IntervalsSource intervalsSource, float pivot)
      Create a new IntervalQuery with a scoring pivot
      Parameters:
      field - the field to query
      intervalsSource - an IntervalsSource to retrieve intervals from
      pivot - the sloppy frequency value at which the score will be 0.5, must be within (0, +Infinity)
    • IntervalQuery

      public IntervalQuery(String field, IntervalsSource intervalsSource, float pivot, float exp)
      Create a new IntervalQuery with a scoring pivot and exponent
      Parameters:
      field - the field to query
      intervalsSource - an IntervalsSource to retrieve intervals from
      pivot - the sloppy frequency value at which the score will be 0.5, must be within (0, +Infinity)
      exp - exponent, higher values make the function grow slower before 'pivot' and faster after 'pivot', must be in (0, +Infinity)
    • IntervalQuery

      private IntervalQuery(String field, IntervalsSource intervalsSource, IntervalScoreFunction scoreFunction)
  • Method Details

    • getField

      public String getField()
      The field to query
    • 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
    • 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
      scoreMode - How the produced scorers will be consumed.
      boost - The boost that is propagated by the parent queries.
      Throws:
      IOException
    • 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
    • equals

      public 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 to those of the other instance. Utility methods are provided for certain repetitive code.

      Specified by:
      equals in class Query
      See Also:
    • 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: