4.2.2 删除索引请求
- 需要参数:
DeleteIndexRequestindex
DeleteIndexRequest request = new DeleteIndexRequest("posts");//<1> <1> 索引(index)名
<1> 索引(index)名
4.2.3 可选参数
- 可以选择提供以下参数:
request.timeout(TimeValue.timeValueMinutes(2));request.timeout("2m");
超时以等待所有节点确认索引删除为TimeValue
类型
超时以等待所有节点确认索引删除为String
类型
request.masterNodeTimeout(TimeValue.timeValueMinutes(1));//连接master节点的超时时间(使用TimeValue方式)request.masterNodeTimeout("1m");//连接master节点的超时时间(使用字符串方式)
连接master节点的超时时间(使用TimeValue方式)连接master节点的超时时间(使用字符串方式)
request.indicesOptions(IndicesOptions.lenientExpandOpen());
设置控制如何解析不可用的索引以及如何展开通配符表达式IndicesOptions
4.2.4 同步执行
- 以下列方式执行
DeleteIndexRequest
时,客户端将等待DeleteIndexResponse
返回 ,然后再继续执行代码:DeleteIndexRequest
DeleteIndexResponse
AcknowledgedResponse deleteIndexResponse = client.indices().delete(request, RequestOptions.DEFAULT);
同步调用可能会引发 在高级REST
客户端中无法解析REST
响应、请求会发出时间或类似情况下没有从服务器返回的响应的情况下 。IOException
在服务器返回 或 错误代码的情况下,高级客户端尝试分析响应正文错误详细信息,然后引发泛型,并将原始代码添加为抑制异常 。4xx 5xx ElasticsearchExceptionResponseException
4.2.5 异步执行
- 也可以以异步方式执行 ,以便客户端可以直接返回 。用户需要指定如何通过将请求和侦听器传递到异步删除索引方法来处理响应或潜在故障:
DeleteIndexRequest
client.indices().deleteAsync(request, RequestOptions.DEFAULT, listener); //<1>
<1> 执行完成时要执行和要使用的DeleteIndexRequest ActionListener
异步方法不会阻止并立即返回 。完成后,如果执行成功完成,则使用
ActionListener#onResponse
方法调用 ,如果执行失败,则使用 ActionListener#
onFailure
该方法 。失败方案和预期异常与同步执行案例相同 。典型的侦听器如下所示:delete-index
ActionListener<AcknowledgedResponse> listener =new ActionListener<AcknowledgedResponse>() {@Overridepublic void onResponse(AcknowledgedResponse deleteIndexResponse) {//成功执行时调用 。}@Overridepublic void onFailure(Exception e) {//当整个失败时调用 。DeleteIndexRequest}};
4.2.6 删除索引响应
- 返回的允许检索有关执行操作的信息,如下所示:
DeleteIndexResponse
boolean acknowledged = deleteIndexResponse.isAcknowledged(); //<1> 指示所有节点是否都已确认请求
<1> 指示所有节点是否都已确认请求
- 如果未找到索引,将引发 :
ElasticsearchException
try {DeleteIndexRequest request = new DeleteIndexRequest("does_not_exist");client.indices().delete(request, RequestOptions.DEFAULT);} catch (ElasticsearchException exception) {if (exception.status() == RestStatus.NOT_FOUND) {//如果未找到要删除的索引,则进行""}}
如果未找到要删除的索引,则进行""
4.3 索引存在(Index Exists Api)
4.3.1 案例:
/*** 索引是否存在Api* url:www.i-code.online* @param args*/public static void main(String[] args) {RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1",9200)));//创建请求GetIndexRequest request = new GetIndexRequest("student");//<1> 是返回本地信息还是从主节点检索状态request.local(false);//<2> 返回结果为适合人类的格式request.humanReadable(true);try {boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);System.out.println(exists);} catch (IOException e) {e.printStackTrace();}}
4.3.2 索引存在请求
- 高级 REST 客户端使用 "Index Exists API" 。索引名称是必需的 。
推荐阅读
- 4月16日新闻早讯,每天60秒读懂世界
- 聊一聊Redis官方置顶推荐的Java客户端Redisson
- 一文讲透FTP和SFTP的区别
- 浅析JavaScript异步到底是怎么实现的?
- JavaScript之dayjs用法,替代moment.js
- 进程、线程、并行与并发
- 10个很棒的JavaScript库,提升Web开发效率
- Java中“::”是什么含义
- Java图形验证码支持gif、中文、算术等
- 一文搞懂分类算法中常用的评估指标