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连接完成,后续的查询操作内容庞大,一时讲述不清,后续更新。