public final class DisjunctionMaxQuery extends Query implements java.lang.Iterable<Query>
Modifier and Type | Class and Description |
---|---|
protected class |
DisjunctionMaxQuery.DisjunctionMaxWeight
Expert: the Weight for DisjunctionMaxQuery, used to
normalize, score and explain these queries.
|
Modifier and Type | Field and Description |
---|---|
private Query[] |
disjuncts |
private float |
tieBreakerMultiplier |
Constructor and Description |
---|
DisjunctionMaxQuery(java.util.Collection<Query> disjuncts,
float tieBreakerMultiplier)
Creates a new DisjunctionMaxQuery
|
Modifier and Type | Method and Description |
---|---|
Weight |
createWeight(IndexSearcher searcher,
ScoreMode scoreMode,
float boost)
Create the Weight used to score us
|
boolean |
equals(java.lang.Object other)
Return true iff we represent the same query as o
|
private boolean |
equalsTo(DisjunctionMaxQuery other) |
java.util.List<Query> |
getDisjuncts() |
float |
getTieBreakerMultiplier() |
int |
hashCode()
Compute a hash code for hashing us
|
java.util.Iterator<Query> |
iterator() |
Query |
rewrite(IndexReader reader)
Optimize our representation and our subqueries representations
|
java.lang.String |
toString(java.lang.String field)
Prettyprint us.
|
void |
visit(QueryVisitor visitor)
Recurse through the query tree, visiting any child queries
|
classHash, sameClassAs, toString
private final Query[] disjuncts
private final float tieBreakerMultiplier
public DisjunctionMaxQuery(java.util.Collection<Query> disjuncts, float tieBreakerMultiplier)
disjuncts
- a Collection<Query>
of all the disjuncts to addtieBreakerMultiplier
- the score of each non-maximum disjunct for a document is multiplied by this weight
and added into the final score. If non-zero, the value should be small, on the order of 0.1, which says that
10 occurrences of word in a lower-scored field that is also in a higher scored field is just as good as a unique
word in the lower scored field (i.e., one that is not in any higher scored field.public java.util.Iterator<Query> iterator()
iterator
in interface java.lang.Iterable<Query>
Iterator<Query>
over the disjunctspublic java.util.List<Query> getDisjuncts()
public float getTieBreakerMultiplier()
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws java.io.IOException
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 Query rewrite(IndexReader reader) throws java.io.IOException
public void visit(QueryVisitor visitor)
Query
public java.lang.String toString(java.lang.String field)
public boolean equals(java.lang.Object other)
equals
in class Query
other
- another objectQuery.sameClassAs(Object)
,
Query.classHash()
private boolean equalsTo(DisjunctionMaxQuery other)
public int hashCode()
hashCode
in class Query
Query.equals(Object)