摘要:將標志設置為默認為。響應返回的允許檢索所請求的文檔及其元數據和最終存儲的字段。如果已請求特定文檔版本,并且現有文檔具有不同的版本號,則會引發版本沖突引發的異常表示返回了版本沖突錯誤。
Get API Get請求
GetRequest需要以下參數:
GetRequest getRequest = new GetRequest( "posts", "doc", "1");
posts — 索引。
doc — 類型。
1 — 文檔id。
可選參數可以選擇提供以下參數:
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標志設置為false(默認為true)。
request.refresh(true);
在檢索文檔之前執行刷新(默認為false)。
request.version(2);
版本。
request.versionType(VersionType.EXTERNAL);
版本類型。
同步執行以下列方式執行GetRequest時,客戶端在繼續執行代碼之前等待返回GetResponse:
GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);異步執行
執行GetRequest也可以以異步方式完成,以便客戶端可以直接返回,用戶需要通過將請求和偵聽器傳遞給異步get方法來指定響應或潛在故障的處理方式:
client.getAsync(request, RequestOptions.DEFAULT, listener);
要執行的GetRequest和執行完成時要使用的ActionListener。
異步方法不會阻塞并立即返回,完成后,如果執行成功完成,則使用onResponse方法回調ActionListener,如果失敗則使用onFailure方法。
get的典型監聽器看起來像:
ActionListenerlistener = new ActionListener () { @Override public void onResponse(GetResponse getResponse) { } @Override public void onFailure(Exception e) { } };
onResponse — 執行成功完成時調用。
onFailure — 在整個GetRequest失敗時調用。
Get響應返回的GetResponse允許檢索所請求的文檔及其元數據和最終存儲的字段。
String index = getResponse.getIndex(); String type = getResponse.getType(); String id = getResponse.getId(); if (getResponse.isExists()) { long version = getResponse.getVersion(); String sourceAsString = getResponse.getSourceAsString(); MapsourceAsMap = getResponse.getSourceAsMap(); byte[] sourceAsBytes = getResponse.getSourceAsBytes(); } else { }
以字符串形式檢索文檔。
將文檔檢索為Map
以byte[]的形式檢索文檔。
處理未找到文檔的方案,請注意,雖然返回的響應具有404狀態代碼,但返回有效的GetResponse而不是拋出異常,此類響應不包含任何源文檔,并且其isExists方法返回false。
當針對不存在的索引執行get請求時,響應具有404狀態代碼,拋出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) { } }
處理拋出的異常,因為索引不存在。
如果已請求特定文檔版本,并且現有文檔具有不同的版本號,則會引發版本沖突:
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) { } }
引發的異常表示返回了版本沖突錯誤。
上一篇:Index API 下一篇:Exists API文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72373.html
摘要:用于的官方高級別客戶端,基于低級別客戶端,它公開特定的方法,并負責請求編組和響應反編組。入門初始化執行請求讀取響應日志記錄通用配置嗅探器在中被添加。依賴于核心項目,它接受與相同的請求參數,并返回相同的響應對象。 Elasticsearch Java REST Client Java REST Client有兩種類型: Java Low Level REST Client:用于Elast...
摘要:入門本節描述從獲取工件到在應用程序中使用它如何開始使用高級別客戶端。保證能夠與運行在相同主版本和大于或等于的次要版本上的任何節點通信。與具有相同的發布周期,將版本替換為想要的客戶端版本。 Java High Level REST Client 入門 本節描述從獲取工件到在應用程序中使用它如何開始使用高級別REST客戶端。 兼容性 Java High Level REST Client需...
閱讀 2571·2021-11-22 09:34
閱讀 932·2021-11-19 11:34
閱讀 2801·2021-10-14 09:42
閱讀 1472·2021-09-22 15:27
閱讀 2385·2021-09-07 09:59
閱讀 1731·2021-08-27 13:13
閱讀 3432·2019-08-30 11:21
閱讀 771·2019-08-29 18:35