void switchAliasToIndex()

in src/main/groovy/com/epam/esp/elasticsearch/ElasticSearchHelper.groovy [275:297]


    void switchAliasToIndex(String aliasName, String indexName, Comparator<String> dropComporator) {

        IndicesAdminClient indices = client.admin().indices();
        try {
            Collection<String> indicesToDrop = getIndicesFromAliasName(aliasName, indexName, dropComporator);

            IndicesAliasesRequestBuilder requestBuilder = indices.prepareAliases();
            requestBuilder.addAlias(indexName, aliasName);
            for (String indexToDrop : indicesToDrop) {
                requestBuilder.removeIndex(indexToDrop);
            }

            AcknowledgedResponse response = requestBuilder.execute().actionGet();
            if (!response.isAcknowledged()) {
                logger.warn("Unable to switch alias $aliasName to use index $indexName");
            }

        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace()
            logger.error("Unable to switch alias to: $indexName cause: ${e.toString()}");
        }
        logger.info("Alias $aliasName has been switched to index $indexName")
    }