@Override
 public Boolean addAlias(AliasQuery query) {
   Assert.notNull(query.getIndexName(), "No index defined for Alias");
   Assert.notNull(query.getAliasName(), "No alias defined");
   AliasAction aliasAction = new AliasAction(ADD, query.getIndexName(), query.getAliasName());
   if (query.getFilterBuilder() != null) {
     aliasAction.filter(query.getFilterBuilder());
   } else if (query.getFilter() != null) {
     aliasAction.filter(query.getFilter());
   } else if (isNotBlank(query.getRouting())) {
     aliasAction.routing(query.getRouting());
   } else if (isNotBlank(query.getSearchRouting())) {
     aliasAction.searchRouting(query.getSearchRouting());
   } else if (isNotBlank(query.getIndexRouting())) {
     aliasAction.indexRouting(query.getIndexRouting());
   }
   return client
       .admin()
       .indices()
       .prepareAliases()
       .addAliasAction(aliasAction)
       .execute()
       .actionGet()
       .isAcknowledged();
 }
 @Override
 public Boolean removeAlias(AliasQuery query) {
   Assert.notNull(query.getIndexName(), "No index defined for Alias");
   Assert.notNull(query.getAliasName(), "No alias defined");
   return client
       .admin()
       .indices()
       .prepareAliases()
       .removeAlias(query.getIndexName(), query.getAliasName())
       .execute()
       .actionGet()
       .isAcknowledged();
 }