码迷,mamicode.com
首页 > 编程语言 > 详细

ES7.4 学习日记——Java REST Client :连接到集群

时间:2019-12-16 22:19:42      阅读:286      评论:0      收藏:0      [点我收藏+]

标签:pid   用户   request   tcl   基于   sys   out   maven   throw   

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);
        }
    }

ES7.4 学习日记——Java REST Client :连接到集群

标签:pid   用户   request   tcl   基于   sys   out   maven   throw   

原文地址:https://www.cnblogs.com/molihuacha/p/12051466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!