使用 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()
我在 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()