Elasticsearch Java High Level REST Client(Exists API)

博弈發表於2019-01-19

Exists API

如果文件存在,則existsAPI返回true,否則返回false

Exists請求

它就像Get API一樣使用GetRequest,支援所有可選引數,由於exists()只返回truefalse,我們建議關閉獲取_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失敗時呼叫。

上一篇:Get API

下一篇:Delete API

相關文章