ES7.4 學習日記——Java REST Client :連接到集群


1、ES7版本變化

  • 廢棄了type,沒有類型的概念;
  • 廢棄TransportClient,只能使用restclient。

2、Maven依賴

連接客戶端主要有Rest Low Level Client和Rest High Level Client兩種可以使用,兩者的主要區別在於:

Rest Low Level Client:低級別的REST客戶端,通過http與集群交互,用戶需自己編組請求JSON串,及解析響應JSON串。兼容所有ES版本。最小Java版本要求為1.7。

Rest High Level Client:高級別的REST客戶端,基於低級別的REST客戶端,增加了編組請求JSON串、解析響應JSON串等相關api。使用的版本需要保持和ES服務端的版本一致,否則會有版本問題。

我選擇使用的是Rest High Level Client,在pom.xml中添加依賴(我使用的是ES7.4.2,所以這里使用同版本的client客戶端):

<dependency>
  <groupId>org.elasticsearch</groupId>
  <artifactId>elasticsearch</artifactId>
  <version>7.4.2</version>
</dependency>

<dependency>
  <groupId>org.elasticsearch.client</groupId>
  <artifactId>elasticsearch-rest-high-level-client</artifactId>
  <version>7.4.2</version>
</dependency>

 3、連接到集群

  public static RestHighLevelClient getClient() {
    RestHighLevelClient client = new RestHighLevelClient(
      RestClient.builder(new HttpHost("localhost",9200,"http")));
    return client;
  }

  通過上面的代碼就可以連接到集群,再通過獲取已經建好的集群內的一個文檔來看看是否連接成功。

    public static void main(String args[]) throws IOException {
        RestHighLevelClient client = getClient();
        GetRequest getRequest = new GetRequest(
                "news", 
                "1"); 
        GetResponse getResponse=client.get(getRequest, RequestOptions.DEFAULT);
        String index = getResponse.getIndex();
        String id = getResponse.getId();
        System.out.println(index);
        System.out.println(id);
        if (getResponse.isExists()) {
            long version = getResponse.getVersion();
            System.out.println(version);
            String sourceAsString = getResponse.getSourceAsString(); 
            System.out.println(sourceAsString);
            Map<String, Object> sourceAsMap = getResponse.getSourceAsMap(); 
            byte[] sourceAsBytes = getResponse.getSourceAsBytes();          
        } else {
            System.out.println(false);
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM