diff options
author | javanna <cavannaluca@gmail.com> | 2016-08-08 19:41:45 +0200 |
---|---|---|
committer | Luca Cavanna <cavannaluca@gmail.com> | 2016-08-08 19:41:45 +0200 |
commit | cb41f304f29ff6270d8204f20eb7724e93ee015f (patch) | |
tree | 5d67786284c40901f29a4402a7bf0379cef478d0 | |
parent | 5d238e86f6c83df2661997ffb508a22d7c5ab22c (diff) |
Throw parsing error if match phrase prefix query contains multiple fields in its short version
-rw-r--r-- | core/src/main/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilder.java | 4 | ||||
-rw-r--r-- | core/src/test/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilderTests.java | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/src/main/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilder.java index ecce9e66b1..ef8f860a28 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilder.java @@ -238,6 +238,10 @@ public class MatchPhrasePrefixQueryBuilder extends AbstractQueryBuilder<MatchPhr } } } else { + if (fieldName != null) { + throw new ParsingException(parser.getTokenLocation(), "[match_phrase_prefix] query doesn't support multiple " + + "fields, found [" + fieldName + "] and [" + parser.currentName() + "]"); + } fieldName = parser.currentName(); value = parser.objectText(); } diff --git a/core/src/test/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilderTests.java index c6dae00b89..9162a1013d 100644 --- a/core/src/test/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/MatchPhrasePrefixQueryBuilderTests.java @@ -171,5 +171,14 @@ public class MatchPhrasePrefixQueryBuilderTests extends AbstractQueryTestCase<Ma "}"; ParsingException e = expectThrows(ParsingException.class, () -> parseQuery(json)); assertEquals("[match_phrase_prefix] query doesn't support multiple fields, found [message1] and [message2]", e.getMessage()); + + String shortJson = "{\n" + + " \"match_phrase_prefix\" : {\n" + + " \"message1\" : \"this is a test\",\n" + + " \"message2\" : \"this is a test\"\n" + + " }\n" + + "}"; + e = expectThrows(ParsingException.class, () -> parseQuery(shortJson)); + assertEquals("[match_phrase_prefix] query doesn't support multiple fields, found [message1] and [message2]", e.getMessage()); } } |