summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java')
-rw-r--r--core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java5
1 files changed, 4 insertions, 1 deletions
diff --git a/core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java
index d9a99cc50c..9184281607 100644
--- a/core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java
+++ b/core/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java
@@ -372,7 +372,10 @@ public class MatchQueryBuilder extends AbstractQueryBuilder<MatchQueryBuilder> {
return null;
}
- if (query instanceof BooleanQuery) {
+ // If the coordination factor is disabled on a boolean query we don't apply the minimum should match.
+ // This is done to make sure that the minimum_should_match doesn't get applied when there is only one word
+ // and multiple variations of the same word in the query (synonyms for instance).
+ if (query instanceof BooleanQuery && !((BooleanQuery) query).isCoordDisabled()) {
query = Queries.applyMinimumShouldMatch((BooleanQuery) query, minimumShouldMatch);
} else if (query instanceof ExtendedCommonTermsQuery) {
((ExtendedCommonTermsQuery)query).setLowFreqMinimumNumberShouldMatch(minimumShouldMatch);