elasticsearch 连接、操作记录

github site:https://github.com/foolchild/record-elasticsearch

1.elasticsearch的版本

2.java客户端的变迁

3.具体使用RestHighLevelClient

1.elasticsearch的版本

简单说一下我使用中感受到的变化

5.x 支持多种type

6.x 只能有一种type

7.x 将去除type 没有类型的概念了

7.X TransportClient被废弃,只能使用restclient。

在es7中使用默认的_doc作为type,官方说在8.x版本会彻底移除type。

2.java客户端的变迁

2.1 transportClient

关于TransportClient,elastic计划在Elasticsearch 7.0中弃用TransportClient,并在8.0中完全删除它。这里就不过多记录。

2.2 Rest Low Level Client

Java Low Level REST Client,低级别的REST客户端,通过http与集群交互,用户需自己编组请求JSON串,及解析响应JSON串。兼容所有ES版本最小Java版本要求为1.7

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>6.2.4</version>
</dependency

2.3 Rest High Level Client

Java High Level REST Client, 高级别的REST客户端,基于低级别的REST客户端,增加了编组请求JSON串、解析响应JSON串等相关api。使用的版本需要保持和ES服务端的版本一致,否则会有版本问题。(不知道以后会不会有best level 或者 highest。。。)

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

3.具体使用RestHighLevelClient

 3.1 兼容性

  • 依赖 java1.8
  • 请使用与服务端ES版本一致的客户端版本

3.2 连接

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

3.3 关于操作

在项目中有相关代码,这里偷个懒

至此,elasticsearch连接完成,后续的查询操作内容庞大,一时讲述不清,后续更新。

原文地址:https://www.cnblogs.com/zhanghao1799/p/11940099.html