Elasticsearch Java High Level REST Client(Exists API)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章