elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

Java 当Elasticsearch批量操作发生故障时,如何获取文档字段?

Java 当Elasticsearch批量操作发生故障时,如何获取文档字段?,java,elasticsearch,Java,elasticsearch,我目前正在使用批量请求将实体从DBMS迁移到Elasticsearch,但我希望能够识别哪些特定实体在操作过程中失败(无需在操作后查询Elastic)。 我注意到BulkItemResponse.Failure类有一个ID\u字段,但这似乎是操作,而不是文档 响应中是否有任何字段可用于检索失败文档的字段?阅读Elasticsearch论坛后,似乎只能检索批量请求中文档的索引,而不能检索文档的内容 作为记录,我是这样从批量响应中提取失败项id的: List<Integer> proc

我目前正在使用批量请求将实体从DBMS迁移到Elasticsearch,但我希望能够识别哪些特定实体在操作过程中失败(无需在操作后查询Elastic)。 我注意到
BulkItemResponse.Failure
类有一个
ID\u字段
,但这似乎是操作,而不是文档


响应中是否有任何字段可用于检索失败文档的字段?

阅读Elasticsearch论坛后,似乎只能检索批量请求中文档的索引,而不能检索文档的内容

作为记录,我是这样从批量响应中提取失败项id的:

List<Integer> processBulkResponse(BulkResponse bulkResponse) {
    List<Integer> failures = new ArrayList<>();
    for (BulkItemResponse bulkItemResponse : bulkResponse) {
        if (bulkItemResponse.isFailed()) {
            failures.add(bulkItemResponse.getItemId());
        }
    }
    return failures;
}
List processBulkResponse(BulkResponse BulkResponse){
列表失败=新建ArrayList();
for(BulkItemResponse BulkItemResponse:bulkResponse){
if(bulkItemResponse.isFailed()){
添加(bulkItemResponse.getItemId());
}
}
返回失败;
}