繁体   English   中英

当Elasticsearch批量操作失败时,如何获取文档字段?

[英]How to get document fields when a failure happens in an Elasticsearch bulk operation?

我目前正在使用批量请求将实体从DBMS迁移到Elasticsearch,但是我希望能够确定操作期间哪些特定实体失败了(无需在操作后查询Elastic)。 我注意到BulkItemResponse.Failure类具有ID_FIELD ,但这似乎是操作,而不是文档。

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

阅读Elasticsearch论坛之后,似乎只能在批量请求中检索文档的索引,而不能检索文档的内容https://discuss.elastic.co/t/way-to-re-index-失败的文档,使用-bulkprocessor /3分之33736

作为记录,这是我从批量响应中提取失败项目ID的方式:

List<Integer> processBulkResponse(BulkResponse bulkResponse) {
    List<Integer> failures = new ArrayList<>();
    for (BulkItemResponse bulkItemResponse : bulkResponse) {
        if (bulkItemResponse.isFailed()) {
            failures.add(bulkItemResponse.getItemId());
        }
    }
    return failures;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM