32
32
import org .elasticsearch .search .highlight .HighlightBuilder ;
33
33
import org .elasticsearch .search .sort .FieldSortBuilder ;
34
34
import org .elasticsearch .search .sort .SortOrder ;
35
- import org .junit .Before ;
36
- import org .junit .Ignore ;
37
- import org .junit .Test ;
35
+ import org .junit .*;
38
36
import org .junit .runner .RunWith ;
39
37
import org .springframework .beans .factory .annotation .Autowired ;
40
38
import org .springframework .data .domain .Page ;
53
51
* @author Rizwan Idrees
54
52
* @author Mohsin Husen
55
53
* @author Franck Marchand
54
+ * @author Abdul Mohammed
56
55
*/
57
56
@ RunWith (SpringJUnit4ClassRunner .class )
58
57
@ ContextConfiguration ("classpath:elasticsearch-template-test.xml" )
59
58
public class ElasticsearchTemplateTests {
60
59
61
60
private static final String INDEX_NAME = "test-index" ;
61
+ private static final String INDEX_1_NAME = "test-index-1" ;
62
+ private static final String INDEX_2_NAME = "test-index-2" ;
62
63
private static final String TYPE_NAME = "test-type" ;
63
64
64
65
@ Autowired
@@ -68,9 +69,23 @@ public class ElasticsearchTemplateTests {
68
69
public void before () {
69
70
elasticsearchTemplate .deleteIndex (SampleEntity .class );
70
71
elasticsearchTemplate .createIndex (SampleEntity .class );
71
- elasticsearchTemplate .refresh (SampleEntity .class , true );
72
+ elasticsearchTemplate .deleteIndex (INDEX_1_NAME );
73
+ elasticsearchTemplate .deleteIndex (INDEX_2_NAME );
74
+ elasticsearchTemplate .refresh (SampleEntity .class , true );
72
75
}
73
76
77
+ @ After
78
+ /** // doing a cleanup to ensure that no indexes are left behind after the test run */
79
+ public void after () {
80
+
81
+ // it is safe to call deleteIndex as it checks for index existance before deleting it
82
+ elasticsearchTemplate .deleteIndex (INDEX_NAME );
83
+ elasticsearchTemplate .deleteIndex (INDEX_1_NAME );
84
+ elasticsearchTemplate .deleteIndex (INDEX_2_NAME );
85
+
86
+ }
87
+
88
+
74
89
@ Test
75
90
public void shouldReturnCountForGivenSearchQuery () {
76
91
// given
@@ -1504,6 +1519,43 @@ public void shouldCreateGivenSettingsForGivenIndex() {
1504
1519
assertThat ((String ) map .get ("index.store.type" ), is ("memory" ));
1505
1520
}
1506
1521
1522
+
1523
+ @ Test
1524
+ public void shouldTestResultsAcrossMultipleIndices () {
1525
+ // given
1526
+ String documentId1 = randomNumeric (5 );
1527
+ SampleEntity sampleEntity1 = new SampleEntityBuilder (documentId1 ).message ("some message" )
1528
+ .version (System .currentTimeMillis ()).build ();
1529
+
1530
+ IndexQuery indexQuery1 = new IndexQueryBuilder ().withId (sampleEntity1 .getId ())
1531
+ .withIndexName ("test-index-1" )
1532
+ .withObject (sampleEntity1 )
1533
+ .build ();
1534
+
1535
+ String documentId2 = randomNumeric (5 );
1536
+ SampleEntity sampleEntity2 = new SampleEntityBuilder (documentId2 ).message ("some test message" )
1537
+ .version (System .currentTimeMillis ()).build ();
1538
+
1539
+ IndexQuery indexQuery2 = new IndexQueryBuilder ().withId (sampleEntity2 .getId ())
1540
+ .withIndexName ("test-index-2" )
1541
+ .withObject (sampleEntity2 )
1542
+ .build ();
1543
+
1544
+ elasticsearchTemplate .bulkIndex (Arrays .asList (indexQuery1 , indexQuery2 ));
1545
+ elasticsearchTemplate .refresh ("test-index-1" , true );
1546
+ elasticsearchTemplate .refresh ("test-index-2" , true );
1547
+
1548
+ SearchQuery searchQuery = new NativeSearchQueryBuilder ()
1549
+ .withQuery (matchAllQuery ())
1550
+ .withIndices ("test-index-1" , "test-index-2" )
1551
+ .build ();
1552
+ // when
1553
+ List <SampleEntity > sampleEntities = elasticsearchTemplate .queryForList (searchQuery , SampleEntity .class );
1554
+
1555
+ // then
1556
+ assertThat (sampleEntities .size (), is (equalTo (2 )));
1557
+ }
1558
+
1507
1559
private IndexQuery getIndexQuery (SampleEntity sampleEntity ) {
1508
1560
return new IndexQueryBuilder ().withId (sampleEntity .getId ()).withObject (sampleEntity ).build ();
1509
1561
}
0 commit comments