Skip to content

Commit ec59f97

Browse files
committed
msm can be string or number
1 parent 278daaa commit ec59f97

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

server/src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,8 @@ private static void doXArrayContent(ParseField field, List<QueryBuilder> clauses
284284
PARSER.declareObjectArray((builder, clauses) -> clauses.forEach(builder::filter), (p, c) -> parseInnerQueryBuilder(p),
285285
FILTER);
286286
PARSER.declareBoolean(BoolQueryBuilder::adjustPureNegative, ADJUST_PURE_NEGATIVE);
287-
PARSER.declareString(BoolQueryBuilder::minimumShouldMatch, MINIMUM_SHOULD_MATCH);
287+
PARSER.declareField(BoolQueryBuilder::minimumShouldMatch, (p, c) -> p.text(),
288+
MINIMUM_SHOULD_MATCH, ObjectParser.ValueType.VALUE);
288289
PARSER.declareString(BoolQueryBuilder::queryName, NAME_FIELD);
289290
PARSER.declareFloat(BoolQueryBuilder::boost, BOOST_FIELD);
290291
}

server/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,12 @@ public void testFromJson() throws IOException {
277277
assertEquals(query, "kimchy", ((TermQueryBuilder)queryBuilder.must().get(0)).value());
278278
}
279279

280+
public void testMinimumShouldMatchNumber() throws IOException {
281+
String query = "{\"bool\" : {\"must\" : { \"term\" : { \"field\" : \"value\" } }, \"minimum_should_match\" : 1 } }";
282+
BoolQueryBuilder builder = (BoolQueryBuilder) parseQuery(query);
283+
assertEquals("1", builder.minimumShouldMatch());
284+
}
285+
280286
/**
281287
* test that unknown query names in the clauses throw an error
282288
*/

0 commit comments

Comments
 (0)