技术标签: # Java REST 客户端文档 java elasticsearch
DeleteRequest
有两个必需参数:
DeleteRequest deleteRequest = new DeleteRequest(
"posts", //索引
"1");//文档ID
可以提供以下参数:
//路由值
deleteRequest.routing("routing");
使用TimeValue作为等待主分片可用的超时时间
deleteRequest.timeout(TimeValue.timeValueMinutes(2));
//使用String作为等待主分片可用的超时时间
deleteRequest.timeout("2m");
//WriteRequest.RefreshPolicy作为刷新策略
deleteRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL);
//使用String作为刷新策略
deleteRequest.setRefreshPolicy("wait_for");
//版本
deleteRequest.version(2);
//版本类型
deleteRequest.versionType(VersionType.EXTERNAL);
当以以下方式执行DeleteRequest
时,客户端会等待DeleteRequest
返回,然后才会继续执行代码:
DeleteResponse deleteResponse = client.delete(
deleteRequest, RequestOptions.DEFAULT);
同步调用可能会在无法解析高级 REST 客户端中的 REST 响应、请求超时或没有从服务器返回响应等类似情况下会抛出IOException
。
在服务器返回4xx
或5xx
错误代码的情况下,高级客户端尝试解析响应体错误细节,然后抛出一个通用的ElasticsearchException
,并将原始的ResponseException
作为被抑制的异常添加到其中。
还可以以异步方式执行DeleteRequest
,以便客户端可以直接返回。用户需要通过将请求和侦听器传递给异步 delete 方法来指定如何处理响应或潜在的失败:
//要执行的IndexRequest和执行完成时要使用的ActionListener
client.deleteAsync(deleteRequest, RequestOptions.DEFAULT, listener);
异步方法不会阻塞并会立即返回。如果执行成功,则使用onResponse
方法回调ActionListener
;如果执行失败,则使用onFailure
方法回调ActionListener
。失败场景和预期异常与同步执行情况相同。
delete
的标准侦听器如下所示:
listener = new ActionListener<DeleteResponse>() {
@Override
public void onResponse(DeleteResponse deleteResponse) {
//当执行成功完成时调用。
}
@Override
public void onFailure(Exception e) {
//当整个DeleteRequest失败时调用。
}
};
返回的DeleteResponse
允许检索关于执行操作的信息,如下所示:
String index = deleteResponse.getIndex();
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 deleteRequest = new DeleteRequest("posts", "does_not_exist");
DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);
if (deleteResponse.getResult() == DocWriteResponse.Result.NOT_FOUND) {
//如果找不到要删除的文档,在这里进行处理
}
如果有版本冲突,将抛出一个ElasticsearchException
:
try {
DeleteResponse deleteResponse = client.delete(
new DeleteRequest("posts", "1").setIfSeqNo(100).setIfPrimaryTerm(2),
RequestOptions.DEFAULT);
} catch (ElasticsearchException exception) {
if (exception.status() == RestStatus.CONFLICT) {
//所引发的异常表明返回了版本冲突错误
}
}
文章浏览阅读3.9k次。https://blog.csdn.net/xiaodingqq/article/details/87690563遇到的错误:_rotmaster报错是个无效的robotmaster
文章浏览阅读2.4k次,点赞2次,收藏9次。正交矩阵是实数特殊化的酉矩阵,因此总是正规矩阵。尽管我们在这里只考虑实数矩阵,这个定义可用于其元素来自任何域的矩阵。正交矩阵毕竟是从内积自然引出的,对于复数的矩阵这导致了归一要求。定义 定义 1 如果:AA'=E(E为单位矩阵,A'表示“矩阵A的转置矩阵”。)或A′A=E,则n阶实矩阵 A称为正交矩阵, 若A为正交阵,则满足以下条件: ..._正交矩阵
文章浏览阅读4.2k次。如下图所示,左边无用白块太多,而且线基本到不了左边那一块,所以想弄个掩模把左边弄成纯黑色。下图是打算使用的掩模下图是原来的程序,结果报错,错误如标题所示。# 掩模创建def roi_mask(img,corner1_points,corner2_points): mask = np.zeros_like(img) cv.fillPoly(mask,corne..._(-215:assertion failed) p.checkvector(2, cv_32s) >= 0 in function 'cv::polyl
文章浏览阅读1k次。智东西7月11日消息,昨日,MLPerf基准联盟公布了最新一轮的基准测试数据,结果显示,英伟达和谷歌云刷新了人工智能训练时间的记录。MLPerf是一项用于测试ML(Machine Learning)硬件、软件以及服务的训练和推理性能的公开基准。它能帮助人工智能研究人员采用通用标准来衡量用于训练人工智能的硬件、软件的最佳性能和速度。目前,MLPerf基准测试正迅速成为测量机器学习性能的行业标..._tpu 芯片
文章浏览阅读7.8k次,点赞9次,收藏66次。JSP隐式对象:(1) out 用于页面输出 (2) request 得到用户请求信息 (3) response 服务器向客户端回应信息 (4) config 服务器配置,可以取得初始化参数 (5) session 用来保存用户的信息 (6) application 所有用户的共享信息 (7) page 指当前页面转换后的Servlet类的实例 (8) pageContext JSP的页面容器 (9) exception 表示JSP页面所发生的异常,在错误页中才起作用。......_jsp隐式对象out可以通过response.getwriter()方式获取,然后再通过println()或者wr
文章浏览阅读603次。window10下载地址_window10下载
文章浏览阅读3.4w次,点赞3次,收藏13次。查询表名为tableName的auto_increment值:SELECT AUTO_INCREMENT FROM information_schema.tables WHEREtable_name='tableName';修改表名为tableName的auto_increment值:ALTER TABLE tableName auto_increment=number ;_set auto_increment
文章浏览阅读3.3k次,点赞2次,收藏4次。seata安装版本是1.5.2,版本不同,安装流程也可能不同,这里的版本需要保持一致执行sql创建数据表使用脚本添加配置到nacos配置中心修改文件,分别修改store、config、registry相关配置。启动服务,成功登陆seata控制台。查看nacos控制台,服务列表新增seata服务。_apm-skywalking not enabled
文章浏览阅读340次。本例使用的时python2.7环境,python3的操作应该也是差不多的。需要用到smtplib和email两个包。发送文本类型的邮件下面看个发送文本邮件的例子(使用网易163的SMTP):# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextfrom email.header import..._smtp_obj.quit()
文章浏览阅读6.4w次,点赞11次,收藏43次。Linux下mysql默认区分大小写Windows下mysql默认不区分大小写查看是否区分大小写show variables like 'lower%'lower_case_table_names参数详解: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是..._dbms: mysql (版本 8.0.32) 区分大小写: 普通形式=lower,分隔形式=lower 驱动程序
文章浏览阅读765次。matplotlib基本函数整理_plt模块
文章浏览阅读1.3k次。1:设置该选项: public void setSoLinger(boolean on, int seconds) throws SocketException; 读取该选项:public int getSoLinger() throws SocketException SO_LINGER选项用来控制Socket关闭时的行为,默认情况下,执行Socket的close_socket.setlinger