Class CompoundQuery
- java.lang.Object
-
- com.lucidworks.search.dsl.DslBase
-
- com.lucidworks.search.dsl.request.DslCloneable
-
- com.lucidworks.search.dsl.request.query.Query
-
- com.lucidworks.search.dsl.request.query.CompoundQuery
-
public class CompoundQuery extends Query
A multi-clause query that merges the result sets of independent subqueriesCompoundQuery
wraps an arbitrary number of subqueries. Each clause is specified as a "must", "mustNot", or "should" - indicating how the subquery result set impacts the result set of the compound whole.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CompoundQuery.Operator
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
TYPE
-
Constructor Summary
Constructors Constructor Description CompoundQuery(java.lang.String minimumNumberShouldMatch, java.util.List<Query> must, java.util.List<Query> should, java.util.List<Query> mustNot, java.util.List<MinimumMatch> minimumMatch)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description CompoundQuery
clone()
java.util.List<Query>
getChildQueries()
Returns all the children of the query in question.java.util.List<MinimumMatch>
getMinimumMatch()
java.lang.String
getMinimumNumberShouldMatch()
Deprecated.java.util.List<Query>
getMust()
java.util.List<Query>
getMustNot()
java.util.List<Query>
getShould()
boolean
isEmptyQuery()
boolean
removeChildQuery(Query toRemove)
Remove 'toRemove', if 'toRemove' is currently a child of this Query object.boolean
replaceChildQuery(Query toReplace, Query replacement)
Swap 'replacement' in as a replacement, if 'toReplace' is currently a child of this Query object.void
setMinimumMatch(java.util.List<MinimumMatch> minimumMatch)
void
setMinimumNumberShouldMatch(java.lang.String minimumNumberShouldMatch)
Deprecated.-
Methods inherited from class com.lucidworks.search.dsl.request.DslCloneable
clone, deepClone
-
-
-
-
Field Detail
-
TYPE
public static final java.lang.String TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
CompoundQuery
public CompoundQuery(java.lang.String minimumNumberShouldMatch, java.util.List<Query> must, java.util.List<Query> should, java.util.List<Query> mustNot, java.util.List<MinimumMatch> minimumMatch)
-
-
Method Detail
-
getMinimumNumberShouldMatch
@Deprecated public java.lang.String getMinimumNumberShouldMatch()
Deprecated.
-
setMinimumNumberShouldMatch
@Deprecated public void setMinimumNumberShouldMatch(java.lang.String minimumNumberShouldMatch)
Deprecated.
-
getMust
public java.util.List<Query> getMust()
- Returns:
- query clauses which need to be matched in order for a document to match the overall CompoundQuery
-
getShould
public java.util.List<Query> getShould()
- Returns:
- query clauses which are preferable but not strictly required to match the overall CompoundQuery.
When "must" clauses are present, "should" clauses primarily affect scoring (and as a result, default sorting). When "must" clauses are absent but "should" clauses are present, documents must match at least one "should" clause to be included in the overall result set.
-
getMustNot
public java.util.List<Query> getMustNot()
- Returns:
- query clauses which disqualify documents from matching the overall CompoundQuery. Matching a single
"mustNot" clause removes the document in question from the overall result set.
If a CompoundQuery contains only "mustNot" queries, the overall results are computed as if a "must"
MatchAllQuery
was specified.
-
getMinimumMatch
public java.util.List<MinimumMatch> getMinimumMatch()
-
setMinimumMatch
public void setMinimumMatch(java.util.List<MinimumMatch> minimumMatch)
-
getChildQueries
public java.util.List<Query> getChildQueries()
Description copied from class:Query
Returns all the children of the query in question. The returnedList
is provided as a copy - changes made to it do not impact the originating Query object in any way.- Specified by:
getChildQueries
in classQuery
-
replaceChildQuery
public boolean replaceChildQuery(Query toReplace, Query replacement)
Description copied from class:Query
Swap 'replacement' in as a replacement, if 'toReplace' is currently a child of this Query object. Because a tree of Query objects might conceivably have repeated clauses, this method is implemented to test 'toReplace' using reference-equality instead of value-equality.- Specified by:
replaceChildQuery
in classQuery
- Returns:
- true if a replacement was made, false otherwise.
-
removeChildQuery
public boolean removeChildQuery(Query toRemove)
Description copied from class:Query
Remove 'toRemove', if 'toRemove' is currently a child of this Query object. Because a tree of Query objects might conceivably have repeated clauses, this method is implemented to test 'toRemove' using reference-equality instead of value-equality.- Specified by:
removeChildQuery
in classQuery
- Returns:
- true if a removal was made, false otherwise.
-
isEmptyQuery
public boolean isEmptyQuery()
- Specified by:
isEmptyQuery
in classQuery
- Returns:
- true if this query is now essentially "empty" (doesn't affect query logic at all) and can now be removed from the query tree. This can happen, for example, if all child queries were removed and the query logic depends on having at least one child query.
-
clone
public CompoundQuery clone()
-
-