public final class BlendedTermQuery extends Query
Query
that blends index statistics across multiple terms.
This is particularly useful when several terms should produce identical
scores, regardless of their index statistics.
For instance imagine that you are resolving synonyms at search time, all terms should produce identical scores instead of the default behavior, which tends to give higher scores to rare terms.
An other useful use-case is cross-field search: imagine that you would
like to search for john
on two fields: first_name
and
last_name
. You might not want to give a higher weight to matches
on the field where john
is rarer, in which case
BlendedTermQuery
would help as well.
Modifier and Type | Class and Description |
---|---|
static class |
BlendedTermQuery.Builder
A Builder for
BlendedTermQuery . |
static class |
BlendedTermQuery.DisjunctionMaxRewrite
A
BlendedTermQuery.RewriteMethod that creates a DisjunctionMaxQuery out
of the sub queries. |
static class |
BlendedTermQuery.RewriteMethod
A
BlendedTermQuery.RewriteMethod defines how queries for individual terms should
be merged. |
Modifier and Type | Field and Description |
---|---|
static BlendedTermQuery.RewriteMethod |
BOOLEAN_REWRITE
A
BlendedTermQuery.RewriteMethod that adds all sub queries to a BooleanQuery . |
static BlendedTermQuery.RewriteMethod |
DISJUNCTION_MAX_REWRITE
BlendedTermQuery.DisjunctionMaxRewrite instance with a tie-breaker of 0.01 . |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object other)
Override and implement query instance equivalence properly in a subclass.
|
int |
hashCode()
Override and implement query hash code properly in a subclass.
|
Query |
rewrite(IndexReader reader)
Expert: called to re-write queries into primitive queries.
|
String |
toString(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, createWeight, sameClassAs, toString
public static final BlendedTermQuery.RewriteMethod BOOLEAN_REWRITE
BlendedTermQuery.RewriteMethod
that adds all sub queries to a BooleanQuery
.
This BlendedTermQuery.RewriteMethod
is useful when matching on several fields is
considered better than having a good match on a single field.public static final BlendedTermQuery.RewriteMethod DISJUNCTION_MAX_REWRITE
BlendedTermQuery.DisjunctionMaxRewrite
instance with a tie-breaker of 0.01
.public boolean equals(Object other)
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)
public String toString(String field)
Query
field
assumed to be the
default field and omitted.public final Query rewrite(IndexReader reader) throws IOException
Query
rewrite
in class Query
IOException
public void visit(QueryVisitor visitor)
Query
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.