成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Elasticsearch Java High Level REST Client(Get API)

bang590 / 2884人閱讀

摘要:將標志設(shè)置為默認為。響應(yīng)返回的允許檢索所請求的文檔及其元數(shù)據(jù)和最終存儲的字段。如果已請求特定文檔版本,并且現(xiàn)有文檔具有不同的版本號,則會引發(fā)版本沖突引發(fā)的異常表示返回了版本沖突錯誤。

Get API Get請求

GetRequest需要以下參數(shù):

GetRequest getRequest = new GetRequest(
        "posts", 
        "doc",  
        "1");

posts — 索引。

doc — 類型。

1 — 文檔id。

可選參數(shù)

可以選擇提供以下參數(shù):

request.fetchSourceContext(FetchSourceContext.DO_NOT_FETCH_SOURCE);

禁用源檢索,默認情況下啟用

String[] includes = new String[]{"message", "*Date"};
String[] excludes = Strings.EMPTY_ARRAY;
FetchSourceContext fetchSourceContext =
        new FetchSourceContext(true, includes, excludes);
request.fetchSourceContext(fetchSourceContext);

為特定字段配置源包含

String[] includes = Strings.EMPTY_ARRAY;
String[] excludes = new String[]{"message"};
FetchSourceContext fetchSourceContext =
        new FetchSourceContext(true, includes, excludes);
request.fetchSourceContext(fetchSourceContext);

為特定字段配置源排除

request.storedFields("message"); 
GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
String message = getResponse.getField("message").getValue();

配置特定存儲字段的檢索(要求字段分別存儲在映射中)。

檢索message存儲字段(要求字段分別存儲在映射中)。

request.routing("routing");

路由值。

request.parent("parent");

parent值。

request.preference("preference");

偏好值。

request.realtime(false);

realtime標志設(shè)置為false(默認為true)。

request.refresh(true);

在檢索文檔之前執(zhí)行刷新(默認為false)。

request.version(2);

版本。

request.versionType(VersionType.EXTERNAL);

版本類型。

同步執(zhí)行

以下列方式執(zhí)行GetRequest時,客戶端在繼續(xù)執(zhí)行代碼之前等待返回GetResponse

GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);
異步執(zhí)行

執(zhí)行GetRequest也可以以異步方式完成,以便客戶端可以直接返回,用戶需要通過將請求和偵聽器傳遞給異步get方法來指定響應(yīng)或潛在故障的處理方式:

client.getAsync(request, RequestOptions.DEFAULT, listener);

要執(zhí)行的GetRequest和執(zhí)行完成時要使用的ActionListener。

異步方法不會阻塞并立即返回,完成后,如果執(zhí)行成功完成,則使用onResponse方法回調(diào)ActionListener,如果失敗則使用onFailure方法。

get的典型監(jiān)聽器看起來像:

ActionListener listener = new ActionListener() {
    @Override
    public void onResponse(GetResponse getResponse) {
        
    }

    @Override
    public void onFailure(Exception e) {
        
    }
};

onResponse — 執(zhí)行成功完成時調(diào)用。

onFailure — 在整個GetRequest失敗時調(diào)用。

Get響應(yīng)

返回的GetResponse允許檢索所請求的文檔及其元數(shù)據(jù)和最終存儲的字段。

String index = getResponse.getIndex();
String type = getResponse.getType();
String id = getResponse.getId();
if (getResponse.isExists()) {
    long version = getResponse.getVersion();
    String sourceAsString = getResponse.getSourceAsString();        
    Map sourceAsMap = getResponse.getSourceAsMap(); 
    byte[] sourceAsBytes = getResponse.getSourceAsBytes();          
} else {
    
}

以字符串形式檢索文檔。

將文檔檢索為Map。

byte[]的形式檢索文檔。

處理未找到文檔的方案,請注意,雖然返回的響應(yīng)具有404狀態(tài)代碼,但返回有效的GetResponse而不是拋出異常,此類響應(yīng)不包含任何源文檔,并且其isExists方法返回false。

當針對不存在的索引執(zhí)行get請求時,響應(yīng)具有404狀態(tài)代碼,拋出ElasticsearchException,需要按如下方式處理:

GetRequest request = new GetRequest("does_not_exist", "doc", "1");
try {
    GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
} catch (ElasticsearchException e) {
    if (e.status() == RestStatus.NOT_FOUND) {
        
    }
}

處理拋出的異常,因為索引不存在。

如果已請求特定文檔版本,并且現(xiàn)有文檔具有不同的版本號,則會引發(fā)版本沖突:

try {
    GetRequest request = new GetRequest("posts", "doc", "1").version(2);
    GetResponse getResponse = client.get(request, RequestOptions.DEFAULT);
} catch (ElasticsearchException exception) {
    if (exception.status() == RestStatus.CONFLICT) {
        
    }
}

引發(fā)的異常表示返回了版本沖突錯誤。

上一篇:Index API 下一篇:Exists API

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72373.html

相關(guān)文章

  • Elasticsearch Java REST Client(目錄)

    摘要:用于的官方高級別客戶端,基于低級別客戶端,它公開特定的方法,并負責(zé)請求編組和響應(yīng)反編組。入門初始化執(zhí)行請求讀取響應(yīng)日志記錄通用配置嗅探器在中被添加。依賴于核心項目,它接受與相同的請求參數(shù),并返回相同的響應(yīng)對象。 Elasticsearch Java REST Client Java REST Client有兩種類型: Java Low Level REST Client:用于Elast...

    roland_reed 評論0 收藏0
  • Elasticsearch Java High Level REST Client(入門)

    摘要:入門本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用高級別客戶端。保證能夠與運行在相同主版本和大于或等于的次要版本上的任何節(jié)點通信。與具有相同的發(fā)布周期,將版本替換為想要的客戶端版本。 Java High Level REST Client 入門 本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用高級別REST客戶端。 兼容性 Java High Level REST Client需...

    honmaple 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<