public class ContextQuery extends CompletionQuery
CompletionQuery that matches documents specified by
a wrapped CompletionQuery supporting boosting and/or filtering
by specified contexts.
Use this query against ContextSuggestField
Example of using a CompletionQuery with boosted
contexts:
CompletionQuery completionQuery = ...;
ContextQuery query = new ContextQuery(completionQuery);
query.addContext("context1", 2);
query.addContext("context2", 1);
NOTE:
PrefixCompletionQuery, RegexCompletionQuery
or FuzzyCompletionQuery query.
addAllContexts().
When no context is added, the default behaviour is to suggest across
all contexts.
addContext(CharSequence, float, boolean) with the common
context prefix, boost and set exact to false.
SuggestField (not context enabled),
would yield results ignoring any context filtering/boosting
| Modifier and Type | Field and Description |
|---|---|
protected CompletionQuery |
innerQuery
Inner completion query
|
| Constructor and Description |
|---|
ContextQuery(CompletionQuery query)
Constructs a context completion query that matches
documents specified by
query. |
| Modifier and Type | Method and Description |
|---|---|
void |
addAllContexts()
Add all contexts with a boost of 1f
|
void |
addContext(java.lang.CharSequence context)
Adds an exact context with default boost of 1
|
void |
addContext(java.lang.CharSequence context,
float boost)
Adds an exact context with boost
|
void |
addContext(java.lang.CharSequence context,
float boost,
boolean exact)
Adds a context with boost, set
exact to false
if the context is a prefix of any indexed contexts |
Weight |
createWeight(IndexSearcher searcher,
boolean needsScores,
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.
|
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. |
getField, getFilter, getTerm, rewriteclassHash, sameClassAs, toStringprotected CompletionQuery innerQuery
public ContextQuery(CompletionQuery query)
query.
Use addContext(CharSequence, float, boolean)
to add context(s) with boost
public void addContext(java.lang.CharSequence context)
public void addContext(java.lang.CharSequence context,
float boost)
public void addContext(java.lang.CharSequence context,
float boost,
boolean exact)
exact to false
if the context is a prefix of any indexed contextspublic void addAllContexts()
public java.lang.String toString(java.lang.String field)
Queryfield assumed to be the
default field and omitted.toString in class CompletionQuerypublic Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws java.io.IOException
QueryOnly implemented by primitive queries, which re-write to themselves.
createWeight in class QueryneedsScores - True if document scores (Scorer.score()) are needed.boost - The boost that is propagated by the parent queries.java.io.IOExceptionpublic boolean equals(java.lang.Object o)
QueryQueryCache 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 QueryQuery.sameClassAs(Object),
Query.classHash()public int hashCode()
QueryQueryCache works properly.hashCode in class QueryQuery.equals(Object)Copyright © 2000–2025 The Apache Software Foundation. All rights reserved.