同步创建索引库
当以以下方式执行CreateIndexRequest时,客户端会等待CreateIndexResponse返回,然后继续执行代 码:
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
摘录之ES文档
在无法解析高级REST客户机中的REST响应、请求超时或类似的情况下(服务器没有返回响应),同步调用可 能会抛出IOException。
在服务器返回4xx或5xx错误代码的情况下,高级客户端尝试解析响应体错误细节,然后抛出通用的 ElasticsearchException,并将原始的ResponseException作为抑制异常添加到其中。
异步创建索引库
执行CreateIndexRequest也可以以异步方式完成,这样客户端就可以直接返回。用户需要通 过将请求和侦听器传递给异步创建-索引方法来指定如何处理响应或潜在故障:
client.indices().createAsync(request, RequestOptions.DEFAULT, listener);
异步创建索引库–摘录之ES文档
执行完成时要执行的CreateIndexRequest和要使用的ActionListener
异步方法不会阻塞并立即返回。一旦ActionListener完成,如果执行成功,则使用 onResponse方法回调;如果执行失败,则使用onFailure方法回调。
故障场景和预期异常与同 步执行情况相同。
创建索引的典型监听器是这样的:
ActionListener<CreateIndexResponse> listener = new ActionListener<CreateIndexResponse>() {
@Override
public void onResponse(
CreateIndexResponse createIndexResponse) {
}
@Override
public void onFailure(Exception e) {
}
};
创建索引的典型监听器之ES文档
当执行成功完成时调用。
当整个CreateIndexRequest失败时调用。