Search code examples
springspring-datadeprecatedspring-data-elasticsearch

AliasQuery is deprecated in Spring Data Elasticsearch 4.1


How do I migrate from Spring Data Elasticsearch 4.0 IndexOperations.addAlias to Spring Data Elasticsearch 4.1 IndexOperations.alias?

I have the following method:

@Autowired ElasticsearchOperations operations;

public boolean addAlias(String indexName, String aliasName) {
    IndexCoordinates index = IndexCoordinates.of(indexName);
    IndexOperations indexOperations = operations.indexOps(index);
    // Create an alias
    return indexOperations.addAlias(new AliasQuery(aliasName));
}

How do I migrate it to the new AliasActions API?

The official migration guide was not helpful.


Solution

  • You can check the tests, for example at https://github.com/spring-projects/spring-data-elasticsearch/blob/master/src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java#L2784-L2830

        AliasActions aliasActions = new AliasActions();
        aliasActions.add(new AliasAction.Add(AliasActionParameters.builder()
                .withIndices(indexOperations.getIndexCoordinates().getIndexNames()).withAliases("aliasA", "aliasB").build()));
    
        indexOperations.alias(aliasActions);