From 6a99d355c056411036827e8499605f9e2e16ef93 Mon Sep 17 00:00:00 2001 From: Mohsin Husen Date: Wed, 19 Mar 2014 21:49:44 +0000 Subject: [PATCH] DATAES-71 - Enhance Create Index in ElasticsearchTemplate added createIndex(String indexName) method --- .../core/ElasticsearchOperations.java | 8 ++++++++ .../core/ElasticsearchTemplate.java | 8 ++++++++ .../core/ElasticsearchTemplateTests.java | 19 ++++++++++++++++++- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java index 7b9c7fcea..e19091292 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchOperations.java @@ -45,6 +45,14 @@ public interface ElasticsearchOperations { */ boolean createIndex(Class clazz); + /** + * Create an index for given indexName + * + * @param indexName + */ + boolean createIndex(String indexName); + + /** * Create mapping for a class * diff --git a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java index b46da4c7c..8a4a49e14 100755 --- a/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java +++ b/src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java @@ -117,6 +117,14 @@ public class ElasticsearchTemplate implements ElasticsearchOperations { return createIndexIfNotCreated(clazz); } + @Override + public boolean createIndex(String indexName) { + Assert.notNull(indexName, "No index defined for Query"); + return client.admin().indices() + .create(Requests.createIndexRequest(indexName)) + .actionGet().isAcknowledged(); + } + @Override public boolean putMapping(Class clazz) { ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz); diff --git a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java index 6c5a550bc..1b2e138e5 100755 --- a/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java +++ b/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java @@ -1256,6 +1256,23 @@ public class ElasticsearchTemplateTests { private void cleanUpIndices() { elasticsearchTemplate.deleteIndex("test-index-1"); elasticsearchTemplate.deleteIndex("test-index-2"); + elasticsearchTemplate.createIndex("test-index-1"); + elasticsearchTemplate.createIndex("test-index-2"); + elasticsearchTemplate.refresh("test-index-1", true); + elasticsearchTemplate.refresh("test-index-2", true); + } + + /* + DATAES-71 + */ + @Test + public void shouldCreatedIndexWithSpecifiedIndexName() { + // given + elasticsearchTemplate.deleteIndex("test-index"); + // when + elasticsearchTemplate.createIndex("test-index"); + // then + assertThat(elasticsearchTemplate.indexExists("test-index"), is(true)); } /* @@ -1263,7 +1280,7 @@ public class ElasticsearchTemplateTests { */ @Test public void shouldDeleteIndexForSpecifiedIndexName() { - //given + // given elasticsearchTemplate.createIndex(SampleEntity.class); elasticsearchTemplate.refresh(SampleEntity.class, true);