DATAES-70 - Alias creation with routing not supported

added routing parameters
This commit is contained in:
Mohsin Husen
2014-04-03 16:49:50 +01:00
parent 3453f30a26
commit 9e97dec225
5 changed files with 162 additions and 10 deletions

View File

@@ -927,6 +927,104 @@ public class ElasticsearchTemplateTests {
assertThat(aliases.size(), is(0));
}
/*
DATAES-70
*/
@Test
public void shouldAddAliasWithGivenRoutingValue() {
//given
String indexName = INDEX_NAME;
String alias = "test-alias";
AliasQuery aliasQuery = new AliasBuilder()
.withIndexName(indexName)
.withAliasName(alias)
.withRouting("0").build();
//when
elasticsearchTemplate.addAlias(aliasQuery);
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntityBuilder(documentId)
.message("some message")
.version(System.currentTimeMillis()).build();
IndexQuery indexQuery = new IndexQueryBuilder()
.withIndexName(alias)
.withId(sampleEntity.getId())
.withObject(sampleEntity).build();
elasticsearchTemplate.index(indexQuery);
elasticsearchTemplate.refresh(SampleEntity.class, true);
SearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
.withIndices(alias).build();
long count = elasticsearchTemplate.count(query, SampleEntity.class);
//then
Set<String> aliases = elasticsearchTemplate.queryForAlias(INDEX_NAME);
assertThat(aliases, is(notNullValue()));
assertThat(aliases.contains(alias), is(true));
assertThat(count, is(1L));
//cleanup
elasticsearchTemplate.removeAlias(aliasQuery);
elasticsearchTemplate.refresh(SampleEntity.class, true);
}
/*
DATAES-70
*/
@Test
public void shouldAddAliasForVariousRoutingValues() {
//given
String indexName = INDEX_NAME;
String alias1 = "test-alias-1";
String alias2 = "test-alias-2";
AliasQuery aliasQuery1 = new AliasBuilder()
.withIndexName(indexName)
.withAliasName(alias1)
.withIndexRouting("0").build();
AliasQuery aliasQuery2 = new AliasBuilder()
.withIndexName(indexName)
.withAliasName(alias2)
.withSearchRouting("1").build();
//when
elasticsearchTemplate.addAlias(aliasQuery1);
elasticsearchTemplate.addAlias(aliasQuery2);
String documentId = randomNumeric(5);
SampleEntity sampleEntity = new SampleEntityBuilder(documentId)
.message("some message")
.version(System.currentTimeMillis()).build();
IndexQuery indexQuery = new IndexQueryBuilder()
.withIndexName(alias1)
.withId(sampleEntity.getId())
.withObject(sampleEntity).build();
elasticsearchTemplate.index(indexQuery);
elasticsearchTemplate.refresh(SampleEntity.class, true);
SearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
.withIndices(alias2).build();
long count = elasticsearchTemplate.count(query, SampleEntity.class);
// then
Set<String> aliases = elasticsearchTemplate.queryForAlias(INDEX_NAME);
assertThat(aliases, is(notNullValue()));
assertThat(aliases.contains(alias1), is(true));
assertThat(aliases.contains(alias2), is(true));
assertThat(count, is(0L));
//cleanup
elasticsearchTemplate.removeAlias(aliasQuery1);
elasticsearchTemplate.removeAlias(aliasQuery2);
elasticsearchTemplate.refresh(SampleEntity.class, true);
}
@Test
public void shouldIndexDocumentForSpecifiedSource() {
@@ -1402,7 +1500,7 @@ public class ElasticsearchTemplateTests {
assertThat(map.containsKey("index.store.type"), is(true));
assertThat((String) map.get("index.refresh_interval"), is("-1"));
assertThat((String) map.get("index.number_of_replicas"), is("0"));
assertThat((String) map.get("index.number_of_shards"), is("1"));
assertThat((String) map.get("index.number_of_shards"), is("2"));
assertThat((String) map.get("index.store.type"), is("memory"));
}

View File

@@ -25,7 +25,7 @@ import org.springframework.data.elasticsearch.annotations.Document;
* @author Rizwan Idrees
* @author Mohsin Husen
*/
@Document(indexName = "test-index", type = "test-type", indexStoreType = "memory", shards = 1, replicas = 0, refreshInterval = "-1")
@Document(indexName = "test-index", type = "test-type", indexStoreType = "memory", shards = 2, replicas = 0, refreshInterval = "-1")
public class SampleEntity {
@Id