|
38 | 38 | import org.elasticsearch.search.SearchHits;
|
39 | 39 | import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
40 | 40 | import org.elasticsearch.search.sort.FieldSortBuilder;
|
41 |
| -import org.elasticsearch.search.sort.SortBuilders; |
42 | 41 | import org.elasticsearch.search.sort.SortOrder;
|
43 | 42 | import org.elasticsearch.test.ESIntegTestCase;
|
44 | 43 |
|
45 | 44 | import java.util.ArrayList;
|
46 | 45 | import java.util.Collection;
|
47 | 46 | import java.util.Collections;
|
48 | 47 | import java.util.List;
|
49 |
| -import java.util.Locale; |
50 | 48 | import java.util.Map;
|
51 | 49 | import java.util.function.Function;
|
52 | 50 |
|
53 | 51 | import static org.elasticsearch.action.support.WriteRequest.RefreshPolicy.IMMEDIATE;
|
54 | 52 | import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
|
55 | 53 | import static org.elasticsearch.common.xcontent.support.XContentMapValues.extractValue;
|
56 | 54 | import static org.elasticsearch.index.query.QueryBuilders.boolQuery;
|
57 |
| -import static org.elasticsearch.index.query.QueryBuilders.constantScoreQuery; |
| 55 | +import static org.elasticsearch.index.query.QueryBuilders.indicesQuery; |
58 | 56 | import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
|
59 | 57 | import static org.elasticsearch.index.query.QueryBuilders.matchQuery;
|
60 | 58 | import static org.elasticsearch.index.query.QueryBuilders.nestedQuery;
|
@@ -636,4 +634,27 @@ public void testInnerHitsWithIgnoreUnmapped() throws Exception {
|
636 | 634 | assertSearchHits(response, "1", "3");
|
637 | 635 | }
|
638 | 636 |
|
| 637 | + public void testInnerHitsInsideIndicesQuery() throws Exception { |
| 638 | + assertAcked(prepareCreate("index1").addMapping("message", "comments", "type=nested")); |
| 639 | + client().prepareIndex("index1", "message", "1").setSource(jsonBuilder().startObject() |
| 640 | + .field("message", "quick brown fox") |
| 641 | + .startArray("comments") |
| 642 | + .startObject().field("message", "fox eat quick").endObject() |
| 643 | + .startObject().field("message", "fox ate rabbit x y z").endObject() |
| 644 | + .startObject().field("message", "rabbit got away").endObject() |
| 645 | + .endArray() |
| 646 | + .endObject()).get(); |
| 647 | + refresh(); |
| 648 | + |
| 649 | + SearchResponse response = client().prepareSearch() |
| 650 | + .setQuery(indicesQuery(nestedQuery("comments", matchQuery("comments.message", "fox"), ScoreMode.None) |
| 651 | + .innerHit(new InnerHitBuilder()), "index1")) |
| 652 | + .get(); |
| 653 | + assertNoFailures(response); |
| 654 | + assertHitCount(response, 1); |
| 655 | + |
| 656 | + assertThat(response.getHits().getAt(0).getInnerHits().get("comments").getTotalHits(), equalTo(2L)); |
| 657 | + assertThat(response.getHits().getAt(0).getInnerHits().get("comments").getAt(0).getNestedIdentity().getOffset(), equalTo(0)); |
| 658 | + assertThat(response.getHits().getAt(0).getInnerHits().get("comments").getAt(1).getNestedIdentity().getOffset(), equalTo(1)); |
| 659 | + } |
639 | 660 | }
|
0 commit comments