Как реализовать управление жизненным циклом индекса с помощью 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, и нужны дополнительные примеры.