You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch 5.6.15迁移至7.17.18代码适配问题咨询

Elasticsearch 5.6.15 迁移至7.17.18代码适配方案

问题1:DeleteByQueryAction.INSTANCE.newRequestBuilder(client)无法解析

原因

7.x版本中,Elasticsearch废弃了通过Action实例构建RequestBuilder的方式,推荐直接使用DeleteByQueryRequest对象构建请求并调用客户端方法执行。

适配代码

原5.6代码示例:

DeleteByQueryRequestBuilder builder = DeleteByQueryAction.INSTANCE.newRequestBuilder(client);
builder.setIndices("your_index");
builder.setQuery(QueryBuilders.matchAllQuery());
builder.get();

适配为7.17代码:

DeleteByQueryRequest request = new DeleteByQueryRequest("your_index");
request.setQuery(QueryBuilders.matchAllQuery());
// 按需添加其他参数设置(如批次大小、超时等)
client.deleteByQuery(request, RequestOptions.DEFAULT);

问题2:Retry.on(Exception.class)无法解析

原因

该方法属于旧版Guava Retrying库的API,新版本中已调整为通过RetryerBuilder链式调用定义重试规则,不再支持Retry.on()的写法。

适配代码

原5.6代码示例:

Retryer<Void> retryer = Retry.on(Exception.class)
    .withMaxAttempts(3)
    .withWaitDuration(1000)
    .build();

适配为7.17兼容的代码(需确保依赖新版Guava Retrying库):

Retryer<Void> retryer = RetryerBuilder.newBuilder()
    .retryIfException() // 替代Retry.on(Exception.class)
    .withStopStrategy(StopStrategies.stopAfterAttempt(3))
    .withWaitStrategy(WaitStrategies.fixedWait(1, TimeUnit.SECONDS))
    .build();

问题3:CreateIndexRequest.source()无法传入Map<String, Object>

原因

7.x版本中,CreateIndexRequest.source()的无类型Map重载被移除,需要显式指定内容类型,让Elasticsearch正确解析Map结构。

适配代码

原5.6代码示例:

CreateIndexRequest request = new CreateIndexRequest("your_index");
Map<String, Object> indexSettings = new HashMap<>();
indexSettings.put("number_of_shards", 3);
request.source(indexSettings);

适配为7.17代码:

CreateIndexRequest request = new CreateIndexRequest("your_index");
Map<String, Object> indexSettings = new HashMap<>();
indexSettings.put("number_of_shards", 3);
// 显式指定内容类型为JSON
request.source(indexSettings, XContentType.JSON);

内容的提问来源于stack exchange,提问作者Peter Penzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 18:07:17