遥望 2019-06-29
如果文档存在,则existsAPI返回true,否则返回false。
它就像Get API一样使用GetRequest,支持所有可选参数,由于exists()只返回true或false,我们建议关闭获取_source和任何存储的字段,以便请求稍微轻一点:
GetRequest getRequest = new GetRequest(
"posts",
"doc",
"1");
getRequest.fetchSourceContext(new FetchSourceContext(false));
getRequest.storedFields("_none_");posts — 索引。doc — 类型。1 — 索引id。FetchSourceContext(false) — 禁用提取_source。storedFields("_none_") — 禁用提取存储的字段。以下列方式执行GetRequest时,客户端在继续执行代码之前等待返回boolean:
boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);
执行GetRequest也可以以异步方式完成,以便客户端可以直接返回,用户需要通过将请求和侦听器传递给异步exists方法来指定响应或潜在故障的处理方式:
client.existsAsync(getRequest, RequestOptions.DEFAULT, listener);
GetRequest和执行完成时要使用的ActionListener。异步方法不会阻塞并立即返回,完成后,如果执行成功完成,则使用onResponse方法回调ActionListener,如果失败则使用onFailure方法。
exists的典型侦听器如下所示:
ActionListener<Boolean> listener = new ActionListener<Boolean>() {
@Override
public void onResponse(Boolean exists) {
}
@Override
public void onFailure(Exception e) {
}
};onResponse — 执行成功完成时调用。onFailure — 在整个GetRequest失败时调用。