Elasticsearch REST клиент Ответ на создание индекса - PullRequest
0 голосов
/ 28 октября 2018

Я создаю индекс, используя клиент REST высокого уровня (v. 6.3.2) во время загрузки приложения.Я проверяю, получаю ли я подтверждение, но я понимаю, что ложное значение для подтверждения ничего не говорит о сбое операции (это просто означает, что в течение тайм-аута по умолчанию клиент не смог получить подтверждение).

В таком случае, что я могу сделать, чтобы убедиться, что индекс действительно создан?Я ищу правильный код ответа, который позволил бы мне повторить попытку определенное количество раз, а затем сдать

    GetIndexRequest getIndexRequest = new GetIndexRequest();

    boolean exists = restHighLevelClient.indices().exists(getIndexRequest);

    if(!exists) {
        //create a new index with default number of shards(5) and replica(1)
        CreateIndexRequest createIndexRequest = Requests.createIndexRequest(elasticProps.getIndexName());
        CreateIndexResponse createIndexResponse = restHighLevelClient.indices().create(createIndexRequest);

        boolean acknowledged = createIndexResponse.isAcknowledged();
        if(!acknowledged) {
            LOGGER.warn("Could not receive acknowledge from all the nodes");

            //wait and retry?
            //
        }
    } else {
        LOGGER.info("Index already exists");
    }
...