From 53d801c0d71adacf5f1f582b6fc31f07240e805e Mon Sep 17 00:00:00 2001 From: jimczi Date: Wed, 4 Dec 2019 12:21:02 +0100 Subject: [PATCH] \#49566 Fix non-deterministic sort order in testHighlightingWithKeywordIgnoreBoundaryScanner --- .../highlight/HighlighterSearchIT.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java b/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java index 3d8b0813179..ac87482c09f 100644 --- a/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java +++ b/server/src/test/java/org/elasticsearch/search/fetch/subphase/highlight/HighlighterSearchIT.java @@ -57,6 +57,7 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.BoundaryScannerType; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder.Field; +import org.elasticsearch.search.sort.SortBuilders; import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalSettingsPlugin; @@ -129,20 +130,33 @@ public class HighlighterSearchIT extends ESIntegTestCase { .startObject("tags") .field("type", "keyword") .endObject() + .startObject("sort") + .field("type", "long") + .endObject() .endObject().endObject(); mappings.endObject(); assertAcked(prepareCreate("test") .addMapping("type", mappings)); client().prepareIndex("test", "_doc").setId("1") - .setSource(jsonBuilder().startObject().array("tags", "foo bar", "foo bar", "foo bar", "foo baz").endObject()) + .setSource(jsonBuilder() + .startObject() + .array("tags", "foo bar", "foo bar", "foo bar", "foo baz") + .field("sort", 1) + .endObject()) .get(); client().prepareIndex("test", "_doc").setId("2") - .setSource(jsonBuilder().startObject().array("tags", "foo baz", "foo baz", "foo baz", "foo bar").endObject()) + .setSource(jsonBuilder() + .startObject() + .array("tags", "foo baz", "foo baz", "foo baz", "foo bar") + .field("sort", 2) + .endObject()) .get(); refresh(); for (BoundaryScannerType scanner : BoundaryScannerType.values()) { - SearchResponse search = client().prepareSearch().setQuery(matchQuery("tags", "foo bar")) + SearchResponse search = client().prepareSearch() + .addSort(SortBuilders.fieldSort("sort")) + .setQuery(matchQuery("tags", "foo bar")) .highlighter(new HighlightBuilder().field(new Field("tags")).numOfFragments(2).boundaryScannerType(scanner)).get(); assertHighlight(search, 0, "tags", 0, 2, equalTo("foo bar")); assertHighlight(search, 0, "tags", 1, 2, equalTo("foo bar"));