1. 程式人生 > >Elasticsearch Document Multi Get API詳解、原理與示例

Elasticsearch Document Multi Get API詳解、原理與示例

   本文將詳細介紹批量獲取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詳解、原理與示例

更多文章請關注微信公眾號:
在這裡插入圖片描述