summaryrefslogtreecommitdiff
path: root/core/src/test/java/org/elasticsearch/search
diff options
context:
space:
mode:
authorJim Ferenczi <jim.ferenczi@elastic.co>2017-06-08 12:27:11 +0200
committerGitHub <noreply@github.com>2017-06-08 12:27:11 +0200
commiteeac4b9721d42ad133996c07e812035ca767cb22 (patch)
treeede6ebfdabae72fdc4bc4e1fd969b38e860f54c6 /core/src/test/java/org/elasticsearch/search
parent36a5cf8f35e5cbaa1ff857b5a5db8c02edc1a187 (diff)
Fix Fast Vector Highlighter NPE on match phrase prefix (#25116)
The FVH fails with an NPE when a match phrase prefix is rewritten in an empty phrase query. This change makes sure that the multi match query rewrites to a MatchNoDocsQuery (instead of an empty phrase query) when there is a single term and that term does not expand to any term in the index. Fixes #25088
Diffstat (limited to 'core/src/test/java/org/elasticsearch/search')
-rw-r--r--core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java
index c8c0314805..f7f9bbaeb4 100644
--- a/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java
+++ b/core/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java
@@ -1462,7 +1462,6 @@ public class HighlighterSearchIT extends ESIntegTestCase {
assertHighlight(searchResponse, 0, "field0", 0, 1, equalTo("The quick <x>brown</x> fox jumps over the lazy dog"));
-
source = searchSource()
.query(matchPhrasePrefixQuery("field0", "quick bro"))
.highlighter(highlight().field("field0").order("score").preTags("<x>").postTags("</x>").highlighterType(type));
@@ -1473,6 +1472,21 @@ public class HighlighterSearchIT extends ESIntegTestCase {
logger.info("--> highlighting and searching on field1");
source = searchSource()
+ .query(boolQuery()
+ .should(matchPhrasePrefixQuery("field1", "test"))
+ .should(matchPhrasePrefixQuery("field1", "bro"))
+ )
+ .highlighter(highlight().field("field1").order("score").preTags("<x>").postTags("</x>").highlighterType(type));
+
+ searchResponse = client().search(searchRequest("test").source(source)).actionGet();
+ assertThat(searchResponse.getHits().totalHits, equalTo(2L));
+ for (int i = 0; i < 2; i++) {
+ assertHighlight(searchResponse, i, "field1", 0, 1, anyOf(
+ equalTo("The quick <x>browse</x> button is a fancy thing, right <x>bro</x>?"),
+ equalTo("The quick <x>brown</x> fox jumps over the lazy dog")));
+ }
+
+ source = searchSource()
.query(matchPhrasePrefixQuery("field1", "quick bro"))
.highlighter(highlight().field("field1").order("score").preTags("<x>").postTags("</x>").highlighterType(type));