1. 程式人生 > >ElasticSearch 學習:JAVA HighLevel REST Client--獲取文件

ElasticSearch 學習:JAVA HighLevel REST Client--獲取文件

一、按照索引號獲取文件內容

獲取文件資訊對應於HTTP的get請求,使用普通網頁請求顯示為

使用curl命令顯示為:

1.新建一個客戶client用於傳送請求和接收響應值

RestHighLevelClient client = new RestHighLevelClient(

                           RestClient.builder(new HttpHost("10.0.2.190",9200,"http")));

其中10.0.2.190為ES執行的主機,9200為埠號(預設),與trasport API和LOW LEVEL API不同。ES使用的是http協議,故最後指定了http,也可以不提供第三個引數,預設使用http

2.生成一個請求內容。

GetRequest getRequest = new GetRequest("music","songs","1");

其中,music為index,songs為type,“1”表示索引號,根據此索引號獲取文件。

為什麼要用GET而不用POST?

3.等待接收響應。

GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);

需要說明的是,此處的申請是同步處理。即客戶端傳送請求後一直等著訊息返回。

HighLevel REST Client同時提供了非同步處理方式,呼叫方法為client.getAsync(getRequest, RequestOptions.DEFAULT, listener);

其中,listener為ActionListener<GetResponse>泛型函式,使用者需要自行實現回撥函式 ActionListener中的 onResponse和onFailure。

4.處理響應。

if(getResponse.isExists()) {

                     System.out.println(getResponse.getSourceAsString());

              }

我這裡只是簡單的將其輸出至控制檯,你也可以做其他的處理。

5.關閉客戶client

client.close();

至此,使用按照索引號獲取文件內容就結束了。