Как реализовать управление жизненным циклом индекса с помощью ElasticsearchClient?

Я нахожусь в процессе перехода с версии Elasticsearch 7.17.0 на версию 8.8.1. В моем существующем коде я использую High-Level Rest Client (HLRC) для управления политиками жизненного цикла индекса. Однако в Elasticsearch версии 8.8.1 кажется, чтоIndexLifecycleClientбыл удален, и я не могу найти альтернативный метод для выполнения той же функции.

В частности, я использовалPutLifecyclePolicyRequestсоздать новую политику. Кажется, в Elasticsearch 8.8.1 это теперь называетсяPutLifecycleRequest. Может ли кто-нибудь подтвердить, выполняет ли это ту же функцию?

Кроме того, мы будем очень признательны за любые рекомендации или примеры по реализации управления жизненным циклом индекса с помощью ElasticsearchClient в версии 8.8.1. Спасибо.

Код HLRC:

      private void createLifecyclePolicy(RestHighLevelClient client) throws IOException {
    try {
      IndexLifecycleClient lsClient = client.indexLifecycle();
      Map<String, Phase> phases = new HashMap<>();
      Map<String, LifecycleAction> hotActions = new HashMap<>();
      hotActions.put(
          RolloverAction.NAME,
          new RolloverAction(new ByteSizeValue(25, ByteSizeUnit.GB), null, null, null));
      phases.put("hot", new Phase("hot", TimeValue.ZERO, hotActions));
      LifecyclePolicy lifecyclePolicy =
          new LifecyclePolicy(elasticsearchPropertyProvider.getBulkFilterPolicyName(), phases);
      AcknowledgedResponse response =
          lsClient.putLifecyclePolicy(
              new PutLifecyclePolicyRequest(lifecyclePolicy), RequestOptions.DEFAULT);
      logger.info("Create policy acknowledgement : {}", response.isAcknowledged());
    } catch (Exception e) {
      logger.error(e, "Error while creating lifecycle policy");
      throw e;
    }
  }
private boolean isLifecyclePolicyExists(RestHighLevelClient client) throws IOException {
      GetLifecyclePolicyResponse lifecyclePolicy =
          client
              .indexLifecycle()
              .getLifecyclePolicy(
                  new GetLifecyclePolicyRequest(
                      elasticsearchPropertyProvider.getBulkFilterPolicyName()),
                  RequestOptions.DEFAULT);
      logger.info("Policy found : {}", lifecyclePolicy.getPolicies());
      return true;
    

Пробовал методами PutLifecycleRequest, GetLifecycleRequest, IlmPolicy. Невозможно реализовать ту же функциональность, используя новые методы ES-8.8.1, и нужны дополнительные примеры.

0 ответов

Другие вопросы по тегам