资讯专栏INFORMATION COLUMN

Elasticsearch Java High Level REST Client(Delete A

xiyang / 1089人阅读

摘要:将刷新策略作为。的典型侦听器如下所示执行成功完成时调用。响应返回的允许检索有关已执行操作的信息,如下所示处理成功碎片数小于总分片数的情况。处理潜在的失败。如果存在版本冲突,则抛出引发的异常表示返回了版本冲突错误。

Delete API Delete请求

DeleteRequest没有参数。

DeleteRequest request = new DeleteRequest(
        "posts",    
        "doc",      
        "1");

posts — 索引。

doc — 类型。

1 — 文档id。

可选参数

可以选择提供以下参数:

request.routing("routing");

路由值。

request.parent("parent");

parent值。

request.timeout(TimeValue.timeValueMinutes(2)); 
request.timeout("2m");

等待主碎片可用的作为TimeValue的超时。

等待主碎片可用的作为String 的超时。

request.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL);
request.setRefreshPolicy("wait_for");

将刷新策略作为WriteRequest.RefreshPolicy实例。

将刷新策略作为String

request.version(2);

版本。

request.versionType(VersionType.EXTERNAL);

版本类型。

同步执行

以下列方式执行DeleteRequest时,客户端在继续执行代码之前等待返回DeleteResponse

DeleteResponse deleteResponse = client.delete(
        request, RequestOptions.DEFAULT);
异步执行

执行DeleteRequest也可以以异步方式完成,以便客户端可以直接返回,用户需要通过将请求和侦听器传递给异步删除方法来指定响应或潜在故障的处理方式:

client.deleteAsync(request, RequestOptions.DEFAULT, listener);

要执行的DeleteRequest和执行完成时要使用的ActionListener

异步方法不会阻塞并立即返回,完成后,如果执行成功完成,则使用onResponse方法回调ActionListener,如果失败则使用onFailure方法。

delete的典型侦听器如下所示:

listener = new ActionListener() {
    @Override
    public void onResponse(DeleteResponse deleteResponse) {
        
    }

    @Override
    public void onFailure(Exception e) {
        
    }
};

onResponse — 执行成功完成时调用。

onFailure — 在整个DeleteRequest失败时调用。

Delete响应

返回的DeleteResponse允许检索有关已执行操作的信息,如下所示:

String index = deleteResponse.getIndex();
String type = deleteResponse.getType();
String id = deleteResponse.getId();
long version = deleteResponse.getVersion();
ReplicationResponse.ShardInfo shardInfo = deleteResponse.getShardInfo();
if (shardInfo.getTotal() != shardInfo.getSuccessful()) {
    
}
if (shardInfo.getFailed() > 0) {
    for (ReplicationResponse.ShardInfo.Failure failure :
            shardInfo.getFailures()) {
        String reason = failure.reason(); 
    }
}

处理成功碎片数小于总分片数的情况。

处理潜在的失败。

还可以检查文档是否被找到:

DeleteRequest request = new DeleteRequest("posts", "doc", "does_not_exist");
DeleteResponse deleteResponse = client.delete(
        request, RequestOptions.DEFAULT);
if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) {
    
}

如果找不到要删除的文档,请执行某些操作。

如果存在版本冲突,则抛出ElasticsearchException

try {
    DeleteResponse deleteResponse = client.delete(
            new DeleteRequest("posts", "doc", "1").version(2),
            RequestOptions.DEFAULT);
} catch (ElasticsearchException exception) {
    if (exception.status() == RestStatus.CONFLICT) {
        
    }
}

引发的异常表示返回了版本冲突错误。


上一篇:Exists API

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/34375.html

相关文章

  • Elasticsearch Java High Level REST ClientDelete A

    摘要:将刷新策略作为。的典型侦听器如下所示执行成功完成时调用。响应返回的允许检索有关已执行操作的信息,如下所示处理成功碎片数小于总分片数的情况。处理潜在的失败。如果存在版本冲突,则抛出引发的异常表示返回了版本冲突错误。 Delete API Delete请求 DeleteRequest没有参数。 DeleteRequest request = new DeleteRequest( ...

    GitChat 评论0 收藏0
  • Elasticsearch Java REST Client(目录)

    摘要:用于的官方高级别客户端,基于低级别客户端,它公开特定的方法,并负责请求编组和响应反编组。入门初始化执行请求读取响应日志记录通用配置嗅探器在中被添加。依赖于核心项目,它接受与相同的请求参数,并返回相同的响应对象。 Elasticsearch Java REST Client Java REST Client有两种类型: Java Low Level REST Client:用于Elast...

    roland_reed 评论0 收藏0
  • Elasticsearch Java REST Client(目录)

    摘要:用于的官方高级别客户端,基于低级别客户端,它公开特定的方法,并负责请求编组和响应反编组。入门初始化执行请求读取响应日志记录通用配置嗅探器在中被添加。依赖于核心项目,它接受与相同的请求参数,并返回相同的响应对象。 Elasticsearch Java REST Client Java REST Client有两种类型: Java Low Level REST Client:用于Elast...

    Anonymous1 评论0 收藏0
  • Elasticsearch Java High Level REST Client(Exists A

    摘要:如果文档存在,则返回,否则返回。禁用提取存储的字段。异步方法不会阻塞并立即返回,完成后,如果执行成功完成,则使用方法回调,如果失败则使用方法。的典型侦听器如下所示执行成功完成时调用。 Exists API 如果文档存在,则existsAPI返回true,否则返回false。 Exists请求 它就像Get API一样使用GetRequest,支持所有可选参数,由于exists()只返回...

    Thanatos 评论0 收藏0
  • Elasticsearch Java High Level REST Client(Exists A

    摘要:如果文档存在,则返回,否则返回。禁用提取存储的字段。异步方法不会阻塞并立即返回,完成后,如果执行成功完成,则使用方法回调,如果失败则使用方法。的典型侦听器如下所示执行成功完成时调用。 Exists API 如果文档存在,则existsAPI返回true,否则返回false。 Exists请求 它就像Get API一样使用GetRequest,支持所有可选参数,由于exists()只返回...

    SHERlocked93 评论0 收藏0

发表评论

0条评论

xiyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<