Exists API
如果文件存在,則exists
API返回true
,否則返回false
。
Exists請求
它就像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
失敗時呼叫。