|
16 | 16 | import org.elasticsearch.common.lucene.Lucene;
|
17 | 17 | import org.elasticsearch.common.settings.Settings;
|
18 | 18 | import org.elasticsearch.index.query.QueryBuilders;
|
| 19 | +import org.elasticsearch.index.query.TermsQueryBuilder; |
| 20 | +import org.elasticsearch.indices.TermsLookup; |
19 | 21 | import org.elasticsearch.test.ESIntegTestCase;
|
20 | 22 |
|
21 | 23 | import java.io.ByteArrayInputStream;
|
|
28 | 30 | import java.util.Set;
|
29 | 31 |
|
30 | 32 | import static java.util.Collections.singleton;
|
| 33 | +import static org.elasticsearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_SHARDS; |
31 | 34 | import static org.elasticsearch.index.query.QueryBuilders.queryStringQuery;
|
32 | 35 | import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked;
|
33 | 36 | import static org.elasticsearch.xcontent.XContentFactory.jsonBuilder;
|
@@ -151,7 +154,7 @@ public void testExplainWithFields() throws Exception {
|
151 | 154 | }
|
152 | 155 |
|
153 | 156 | @SuppressWarnings("unchecked")
|
154 |
| - public void testExplainWitSource() throws Exception { |
| 157 | + public void testExplainWithSource() throws Exception { |
155 | 158 | assertAcked(prepareCreate("test").addAlias(new Alias("alias")));
|
156 | 159 | ensureGreen("test");
|
157 | 160 |
|
@@ -281,4 +284,25 @@ public void testStreamExplain() throws Exception {
|
281 | 284 | result = Lucene.readExplanation(esBuffer);
|
282 | 285 | assertThat(exp.toString(), equalTo(result.toString()));
|
283 | 286 | }
|
| 287 | + |
| 288 | + public void testQueryRewrite() { |
| 289 | + client().admin() |
| 290 | + .indices() |
| 291 | + .prepareCreate("twitter") |
| 292 | + .setMapping("user", "type=keyword", "followers", "type=keyword") |
| 293 | + .setSettings(Settings.builder().put(SETTING_NUMBER_OF_SHARDS, 2)) |
| 294 | + .get(); |
| 295 | + ensureGreen("twitter"); |
| 296 | + |
| 297 | + client().prepareIndex("twitter").setId("1").setSource("user", "user1", "followers", new String[] { "user2", "user3" }).get(); |
| 298 | + client().prepareIndex("twitter").setId("2").setSource("user", "user2", "followers", new String[] { "user1" }).get(); |
| 299 | + refresh(); |
| 300 | + |
| 301 | + TermsQueryBuilder termsLookupQuery = QueryBuilders.termsLookupQuery("user", new TermsLookup("twitter", "2", "followers")); |
| 302 | + ExplainResponse response = client().prepareExplain("twitter", "1").setQuery(termsLookupQuery).execute().actionGet(); |
| 303 | + |
| 304 | + Explanation explanation = response.getExplanation(); |
| 305 | + assertNotNull(explanation); |
| 306 | + assertTrue(explanation.isMatch()); |
| 307 | + } |
284 | 308 | }
|
0 commit comments