使用 Java API 使用 Scala 按 ID 删除 Elasticsearch 文档

Delete Elasticsearch document by ID with Scala using Java API

我在 Scala 中使用 Elastic Java API 来删除文档列表,使用它们的 ID 一次一个地删除它们,目前没有成功。 API 适用于 SearchResponse 等其他调用。
我的代码如下所示:

var deleteResp : DeleteResponse = null

deleteResp = ElasticSearch.getClient()
      .prepareDelete(index, type, id)
      .get()

同:

deleteResp = ElasticSearch.getClient()
      .prepareDelete(index, type, id)
      .execute()
      .actionGet()

我也尝试使用它捕捉 Elastic 响应以进行调试,但标准输出中没有显示任何内容。

try{ \ previous code } 
catch {
    case e: Exception => {
    print("Failed deletion", e.getMessage)
    e.printStackTrace() }
}

配置:
-斯卡拉 2.10.6
- 火花 1.6
- 弹性搜索 2.3.2

谢谢

我想这是一个非常具体的案例,但考虑到关于 Java API 用法的信息不多,有人可能会发现这个案例相关。

感谢 Val 和精确的调试,我找到了原因: 非常小心传递给 prepareSearch() 的字符串格式。

我的 ID,来自列表,包含乱七八糟的括号,删除请求成功但 ID 错误。

有关详细信息,请考虑对请求对象使用所有可用方法并仔细检查每种格式:

var deletedId = deleteResp.getId()
var deletedType = deleteResp.getType()
var deletedIndex = deleteResp.getIndex()
var deletedShard = deleteResp.getShardInfo()