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

标签 java elasticsearch

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

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

最佳答案

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

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

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

关于java - 当Elasticsearch批量操作发生故障时,如何获取文档字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54463110/

相关文章:

java - 在嵌入式数据库中为 Spring Batch 创建元数据表

java - 编写光线追踪器,但无法使图像正确居中?

java - 在 Firebird 中通过 Jooq 使用 UUID PK 或 FK

elasticsearch - 如何使用模糊性和通配符查询来查询elasticsearch嵌套对象

elasticsearch - Kibana插件资源

database - 存储多个图像并将其显示在大文本中

elasticsearch - 当涉及特殊字符时,Elasticsearch查询过滤器/术语不起作用

java - 适用于 Android 的 Lib Panorama Spherical

java - 无法从 Spring Boot 连接到 MySQL 数据库

php - 从PHP中的index elasticsearch获取所有数据