public final class IntervalQuery extends Query
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:
BoostQuery
Modifier and Type | Class and Description |
---|---|
private class |
IntervalQuery.IntervalWeight |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
field |
private IntervalsSource |
intervalsSource |
private IntervalScoreFunction |
scoreFunction |
Modifier | Constructor and Description |
---|---|
|
IntervalQuery(java.lang.String field,
IntervalsSource intervalsSource)
Create a new IntervalQuery
|
|
IntervalQuery(java.lang.String field,
IntervalsSource intervalsSource,
float pivot)
Create a new IntervalQuery with a scoring pivot
|
|
IntervalQuery(java.lang.String field,
IntervalsSource intervalsSource,
float pivot,
float exp)
Create a new IntervalQuery with a scoring pivot and exponent
|
private |
IntervalQuery(java.lang.String field,
IntervalsSource intervalsSource,
IntervalScoreFunction scoreFunction) |
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Expert: Constructs an appropriate Weight implementation for this query.
|
boolean |
equals(java.lang.Object o)
Override and implement query instance equivalence properly in a subclass.
|
java.lang.String |
getField()
The field to query
|
int |
hashCode()
Override and implement query hash code properly in a subclass.
|
java.lang.String |
toString(java.lang.String field)
Prints a query to a string, with
field assumed to be the
default field and omitted. |
void |
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries
|
classHash, rewrite, sameClassAs, toString
private final java.lang.String field
private final IntervalsSource intervalsSource
private final IntervalScoreFunction scoreFunction
public IntervalQuery(java.lang.String field, IntervalsSource intervalsSource)
field
- the field to queryintervalsSource
- an IntervalsSource
to retrieve intervals frompublic IntervalQuery(java.lang.String field, IntervalsSource intervalsSource, float pivot)
field
- the field to queryintervalsSource
- an IntervalsSource
to retrieve intervals frompivot
- the sloppy frequency value at which the score will be 0.5, must be within (0, +Infinity)public IntervalQuery(java.lang.String field, IntervalsSource intervalsSource, float pivot, float exp)
field
- the field to queryintervalsSource
- an IntervalsSource
to retrieve intervals frompivot
- 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)private IntervalQuery(java.lang.String field, IntervalsSource intervalsSource, IntervalScoreFunction scoreFunction)
public java.lang.String getField()
public java.lang.String toString(java.lang.String field)
Query
field
assumed to be the
default field and omitted.public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
scoreMode
- How the produced scorers will be consumed.boost
- The boost that is propagated by the parent queries.java.io.IOException
public void visit(QueryVisitor visitor)
Query
public boolean equals(java.lang.Object o)
Query
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.equals
in class Query
Query.sameClassAs(Object)
,
Query.classHash()
public int hashCode()
Query
QueryCache
works properly.hashCode
in class Query
Query.equals(Object)