@Before
  public void before() {
    try {
      if (!clientTemplate.indexExists()) {
        logger.warn("index is not exists!");

        clientTemplate.executeGet(
            new NodeCallback<CreateIndexResponse>() {
              @Override
              public ActionFuture<CreateIndexResponse> execute(final IndicesAdminClient admin) {
                return admin.create(Requests.createIndexRequest(clientTemplate.getIndexName()));
              }
            });
      }
      logger.info("index exists!");
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(0);
    }
  }
 protected void addAliases(final String indexName, final String indexAlias) {
   clientTemplate.executeGet(
       new NodeCallback<IndicesAliasesResponse>() {
         @Override
         public ActionFuture<IndicesAliasesResponse> execute(final IndicesAdminClient admin) {
           IndicesAliasesRequest request = Requests.indexAliasesRequest();
           //				request.addAlias(indexName, indexAlias);
           request.addAlias(indexAlias, indexName);
           return admin.aliases(request);
         }
       });
   logger.info("add aliases successful! indexName: " + indexName + ", indexAlias: " + indexAlias);
 }
  protected IndexResponse index(final XContentBuilder content) {
    final IndexResponse response =
        clientTemplate.executeGet(
            new ClientCallback<IndexResponse>() {

              @Override
              public ActionFuture<IndexResponse> execute(final Client client) {
                final IndexRequest request =
                    Requests.indexRequest(clientTemplate.getIndexName())
                        .source(content)
                        .type("log");
                return client.index(request);
              }
            });
    assertNotNull("response is null", response);
    return response;
  }
 protected <Q> List<SearchHit> search(final String field, final Q value, final int maxResults) {
   return clientTemplate.search(field, value, maxResults);
 }
 protected void flushIndex() {
   clientTemplate.flushIndex();
   logger.info("index flush sucessful!");
 }
 protected void refreshIndex() {
   clientTemplate.refreshIndex();
   logger.info("index refresh sucessful!");
 }