Module org.apache.lucene.suggest
Class ContextQuery
java.lang.Object
org.apache.lucene.search.Query
org.apache.lucene.search.suggest.document.CompletionQuery
org.apache.lucene.search.suggest.document.ContextQuery
- All Implemented Interfaces:
Accountable
A
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:
- This query can be constructed with
PrefixCompletionQuery,RegexCompletionQueryorFuzzyCompletionQueryquery. - To suggest across all contexts, use
addAllContexts(). When no context is added, the default behaviour is to suggest across all contexts. - To apply the same boost to multiple contexts sharing the same prefix, Use
addContext(CharSequence, float, boolean)with the common context prefix, boost and setexactto false. - Using this query against a
SuggestField(not context enabled), would yield results ignoring any context filtering/boosting
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static classHolder for context value meta data -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longprivate Map<IntsRef, ContextQuery.ContextMetaData> protected CompletionQueryInner completion queryprivate booleanprivate longprivate IntsRefBuilderFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
ConstructorsConstructorDescriptionContextQuery(CompletionQuery query) Constructs a context completion query that matches documents specified byquery. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd all contexts with a boost of 1fvoidaddContext(CharSequence context) Adds an exact context with default boost of 1voidaddContext(CharSequence context, float boost) Adds an exact context with boostvoidaddContext(CharSequence context, float boost, boolean exact) Adds a context with boost, setexactto false if the context is a prefix of any indexed contextscreateWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) Expert: Constructs an appropriate Weight implementation for this query.booleanOverride and implement query instance equivalence properly in a subclass.inthashCode()Override and implement query hash code properly in a subclass.longReturn the memory usage of this object in bytes.private static voidsortDescending(int[] array) Sorts and reverses the array.private static AutomatontoContextAutomaton(Map<IntsRef, ContextQuery.ContextMetaData> contexts, boolean matchAllContexts) Prints a query to a string, withfieldassumed to be the default field and omitted.private voidvoidvisit(QueryVisitor visitor) Recurse through the query tree, visiting any child queries.Methods inherited from class org.apache.lucene.search.suggest.document.CompletionQuery
getField, getFilter, getTerm, rewriteMethods inherited from class org.apache.lucene.search.Query
classHash, rewrite, sameClassAs, toStringMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
Field Details
-
BASE_RAM_BYTES
private static final long BASE_RAM_BYTES -
scratch
-
contexts
-
matchAllContexts
private boolean matchAllContexts -
innerQuery
Inner completion query -
ramBytesUsed
private long ramBytesUsed
-
-
Constructor Details
-
ContextQuery
Constructs a context completion query that matches documents specified byquery.Use
addContext(CharSequence, float, boolean)to add context(s) with boost
-
-
Method Details
-
updateRamBytesUsed
private void updateRamBytesUsed() -
addContext
Adds an exact context with default boost of 1 -
addContext
Adds an exact context with boost -
addContext
Adds a context with boost, setexactto false if the context is a prefix of any indexed contexts -
addAllContexts
public void addAllContexts()Add all contexts with a boost of 1f -
toString
Description copied from class:QueryPrints a query to a string, withfieldassumed to be the default field and omitted.- Overrides:
toStringin classCompletionQuery
-
createWeight
public Weight createWeight(IndexSearcher searcher, ScoreMode scoreMode, float boost) throws IOException Description copied from class:QueryExpert: Constructs an appropriate Weight implementation for this query.Only implemented by primitive queries, which re-write to themselves.
- Overrides:
createWeightin classQuery- Parameters:
scoreMode- How the produced scorers will be consumed.boost- The boost that is propagated by the parent queries.- Throws:
IOException
-
sortDescending
private static void sortDescending(int[] array) Sorts and reverses the array. -
toContextAutomaton
private static Automaton toContextAutomaton(Map<IntsRef, ContextQuery.ContextMetaData> contexts, boolean matchAllContexts) -
equals
Description copied from class:QueryOverride and implement query instance equivalence properly in a subclass. This is required so thatQueryCacheworks 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 to those of the other instance. Utility methods are provided for certain repetitive code.
-
hashCode
public int hashCode()Description copied from class:QueryOverride and implement query hash code properly in a subclass. This is required so thatQueryCacheworks properly. -
visit
Description copied from class:QueryRecurse through the query tree, visiting any child queries. -
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-