我正在使用 ElasticSeach 高级别的 api 客户端从另一个集群进行一些自定义重新索引。
ReindexRequest reindexRequest = new ReindexRequest()
.setMaxDocs(3000)
.setDestIndex("my-new-index")
.setTimeout(TimeValue.timeValueHours(1))
.setRemoteInfo(
new RemoteInfo("http", "otherhost", 9200, "/",
new BytesArray(selectQuery.toString()), "user",
"password",
Map.of()), TimeValue.timeValueSeconds(30),
TimeValue.timeValueSeconds(30)))
.setSourceIndices("old-index")
.setScript(new Script(ScriptType.STORED, null, "add_sc_id", Map.of("sc_id", some-id)));
TaskSubmissionResponse task = esClient.submitReindexTask(reindexRequest, RequestOptions.DEFAULT);
我会定期检查任务以查看它是否已使用任务 API
Optional<GetTaskResponse> getTaskResponse =
esClient.tasks().get(new GetTaskRequest(nodeId, taskId), RequestOptions.DEFAULT);
使用它,我可以查看任务是否已完成,getTaskResponse.get().isCompleted()
但无论如何我都看不到它是否成功。
通过GET _taks/nodeId:taskId
使用 curl,我看到有一个response.failures
字段。
有没有办法用 Java High level rest api 客户端检索这个字段?还是有另一种方法可以实现这一目标?