Class 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
    • Constructor Detail

      • IntervalQuery

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

        public IntervalQuery​(java.lang.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​(java.lang.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)
    • Method Detail

      • getField

        public java.lang.String getField()
        The field to query
      • toString

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

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

        public 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()
      • 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:
        Query.equals(Object)