Skip to content

Commit 00eef9c

Browse files
committed
DATAES-72 - Enhance Delete Index in ElasticsearchTemplate
added deleteIndex(String indexName) and indexExist(String indexName) methods
1 parent d75dbbb commit 00eef9c

File tree

3 files changed

+48
-5
lines changed

3 files changed

+48
-5
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,14 @@ public interface ElasticsearchOperations {
275275
*/
276276
<T> boolean deleteIndex(Class<T> clazz);
277277

278+
/**
279+
* Deletes an index for given indexName
280+
*
281+
* @param indexName
282+
* @return
283+
*/
284+
boolean deleteIndex(String indexName);
285+
278286
/**
279287
* Deletes a type in an index
280288
*
@@ -292,6 +300,14 @@ public interface ElasticsearchOperations {
292300
*/
293301
<T> boolean indexExists(Class<T> clazz);
294302

303+
/**
304+
* check if index is exists for given IndexName
305+
*
306+
* @param indexName
307+
* @return
308+
*/
309+
boolean indexExists(String indexName);
310+
295311
/**
296312
* check if type is exists in an index
297313
*

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,11 @@ public <T> boolean indexExists(Class<T> clazz) {
351351
return indexExists(getPersistentEntityFor(clazz).getIndexName());
352352
}
353353

354+
@Override
355+
public boolean indexExists(String indexName) {
356+
return client.admin().indices().exists(indicesExistsRequest(indexName)).actionGet().isExists();
357+
}
358+
354359
@Override
355360
public boolean typeExists(String index, String type) {
356361
return client.admin().cluster().prepareState().execute().actionGet()
@@ -359,7 +364,11 @@ public boolean typeExists(String index, String type) {
359364

360365
@Override
361366
public <T> boolean deleteIndex(Class<T> clazz) {
362-
String indexName = getPersistentEntityFor(clazz).getIndexName();
367+
return deleteIndex(getPersistentEntityFor(clazz).getIndexName());
368+
}
369+
370+
@Override
371+
public boolean deleteIndex(String indexName) {
363372
if (indexExists(indexName)) {
364373
return client.admin().indices().delete(new DeleteIndexRequest(indexName)).actionGet().isAcknowledged();
365374
}
@@ -533,10 +542,6 @@ private <T> boolean createIndexIfNotCreated(Class<T> clazz) {
533542
return indexExists(getPersistentEntityFor(clazz).getIndexName()) || createIndexWithSettings(clazz);
534543
}
535544

536-
private boolean indexExists(String indexName) {
537-
return client.admin().indices().exists(indicesExistsRequest(indexName)).actionGet().isExists();
538-
}
539-
540545
private <T> boolean createIndexWithSettings(Class<T> clazz) {
541546
ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
542547
return client.admin().indices()

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1220,6 +1220,7 @@ public void shouldReturnCountForGivenSearchQueryWithGivenIndexAndTypeUsingSearch
12201220
@Test
12211221
public void shouldReturnCountForGivenSearchQueryWithGivenMultiIndices() {
12221222
// given
1223+
cleanUpIndices();
12231224
String documentId1 = randomNumeric(5);
12241225
SampleEntity sampleEntity1 = new SampleEntityBuilder(documentId1).message("some message")
12251226
.version(System.currentTimeMillis()).build();
@@ -1252,12 +1253,33 @@ public void shouldReturnCountForGivenSearchQueryWithGivenMultiIndices() {
12521253
assertThat(count, is(equalTo(2L)));
12531254
}
12541255

1256+
private void cleanUpIndices() {
1257+
elasticsearchTemplate.deleteIndex("test-index-1");
1258+
elasticsearchTemplate.deleteIndex("test-index-2");
1259+
}
1260+
1261+
/*
1262+
DATAES-72
1263+
*/
1264+
@Test
1265+
public void shouldDeleteIndexForSpecifiedIndexName() {
1266+
//given
1267+
elasticsearchTemplate.createIndex(SampleEntity.class);
1268+
elasticsearchTemplate.refresh(SampleEntity.class, true);
1269+
1270+
// when
1271+
elasticsearchTemplate.deleteIndex("test-index");
1272+
// then
1273+
assertThat(elasticsearchTemplate.indexExists("test-index"), is(false));
1274+
}
1275+
12551276
/*
12561277
DATAES-67
12571278
*/
12581279
@Test
12591280
public void shouldReturnCountForGivenSearchQueryWithGivenIndexNameForSpecificIndex() {
12601281
// given
1282+
cleanUpIndices();
12611283
String documentId1 = randomNumeric(5);
12621284
SampleEntity sampleEntity1 = new SampleEntityBuilder(documentId1).message("some message")
12631285
.version(System.currentTimeMillis()).build();

0 commit comments

Comments
 (0)