Skip to content

Commit 09e3e94

Browse files
committed
DATAES-77 - Search across different indices
Add a test to demonstrate searching across multiple indices.
1 parent 0eb230c commit 09e3e94

File tree

1 file changed

+56
-4
lines changed

1 file changed

+56
-4
lines changed

src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@
3232
import org.elasticsearch.search.highlight.HighlightBuilder;
3333
import org.elasticsearch.search.sort.FieldSortBuilder;
3434
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.*;
3836
import org.junit.runner.RunWith;
3937
import org.springframework.beans.factory.annotation.Autowired;
4038
import org.springframework.data.domain.Page;
@@ -53,12 +51,15 @@
5351
* @author Rizwan Idrees
5452
* @author Mohsin Husen
5553
* @author Franck Marchand
54+
* @author Abdul Mohammed
5655
*/
5756
@RunWith(SpringJUnit4ClassRunner.class)
5857
@ContextConfiguration("classpath:elasticsearch-template-test.xml")
5958
public class ElasticsearchTemplateTests {
6059

6160
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";
6263
private static final String TYPE_NAME = "test-type";
6364

6465
@Autowired
@@ -68,9 +69,23 @@ public class ElasticsearchTemplateTests {
6869
public void before() {
6970
elasticsearchTemplate.deleteIndex(SampleEntity.class);
7071
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);
7275
}
7376

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+
7489
@Test
7590
public void shouldReturnCountForGivenSearchQuery() {
7691
// given
@@ -1504,6 +1519,43 @@ public void shouldCreateGivenSettingsForGivenIndex() {
15041519
assertThat((String) map.get("index.store.type"), is("memory"));
15051520
}
15061521

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+
15071559
private IndexQuery getIndexQuery(SampleEntity sampleEntity) {
15081560
return new IndexQueryBuilder().withId(sampleEntity.getId()).withObject(sampleEntity).build();
15091561
}

0 commit comments

Comments
 (0)