Elasticsearch Document Multi Get API詳解、原理與示例
阿新 • • 發佈:2019-02-12
本文將詳細介紹批量獲取API(Multi Get API)。
詳細API如下:
- public final MultiGetResponse mget(MultiGetRequest multiGetRequest, RequestOptions options) throws IOException
- public final void mgetAsync(MultiGetRequest multiGetRequest, RequestOptions options, ActionListener listener)
其核心需要關注MultiGetRequest 。
從上面所知,mget及批量獲取文件,通過add方法新增多個Item,每一個item代表一個檔案獲取請求,其相關欄位已在get API中詳細介紹,這裡就不做過多詳解。
Mget API使用示例
public static void testMget() { RestHighLevelClient client = EsClient.getClient(); try { MultiGetRequest request = new MultiGetRequest(); request.add("twitter", "_doc", "10"); request.add("twitter", "_doc", "11"); request.add("twitter", "_doc", "12"); request.add("gisdemo", "_doc", "10"); MultiGetResponse result = client.mget(request, RequestOptions.DEFAULT); System.out.println(result); } catch (Throwable e) { e.printStackTrace(); } finally { EsClient.close(client); } }
返回的結果其本質是一個 GetResponse的陣列,不會因為其中一個失敗,整個請求失敗,但其結果中會標明每一個是否成功。
其返回結果類圖如下:
其欄位過濾(Source filtering)、路由等機制與Get API相同,詳情請參考:Elasticsearch Document Get API詳解、原理與示例
更多文章請關注微信公眾號: