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, rewrite
classHash, sameClassAs, toString
protected 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)
Query
field
assumed to be the
default field and omitted.toString
in class CompletionQuery
public Weight createWeight(IndexSearcher searcher, boolean needsScores, float boost) throws java.io.IOException
Query
Only implemented by primitive queries, which re-write to themselves.
createWeight
in class Query
needsScores
- True if document scores (Scorer.score()
) are needed.boost
- The boost that is propagated by the parent queries.java.io.IOException
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)
Copyright © 2000–2019 The Apache Software Foundation. All rights reserved.