Elasticsearch rest-high-level-client 基本操作
本篇主要讲解一下 rest-high-level-client 去操作 Elasticsearch , 虽然这个客户端在后续版本中会慢慢淘汰,但是目前大部分公司中使用Elasticsearch 版本都是6.x所以这个客户端还是有一定的了解
文章插图
前置准备
- 准备一个SpringBoot环境2.2.11 版本
- 准备一个Elasticsearch 环境 我这里是8.x版本
- 引入依赖 elasticsearch-rest-high-level-client7.4.2
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 引入 elasticsearch 7.4.2--><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.4.2</version><exclusions><exclusion><artifactId>log4j-api</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion></exclusions></dependency><!-- 排除 elasticsearch-rest-client , 也可不排除 为了把maven冲突解决--><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.4.2</version><exclusions><exclusion><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId></exclusion><exclusion><artifactId>elasticsearch</artifactId><groupId>org.elasticsearch</groupId></exclusion></exclusions></dependency><!-- 不引入会导致可能 使用 springboot的 elasticsearch-rest-client 6.8.13 --><dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-client</artifactId><version>7.4.2</version></dependency><!-- elasticsearch 依赖 2.x 的 log4j --><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.8.2</version><!--排除掉 log4j-api 因为springbootstarter 中引入了loging模块 --><exclusions><exclusion><artifactId>log4j-api</artifactId><groupId>org.apache.logging.log4j</groupId></exclusion></exclusions></dependency><!-- junit 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
2.构建 RestHighLevelClienthighlevelclient 是 高级客户端 需要通过它去操作 Elasticsearch ,它底层也是要依赖 rest-client 低级客户端@Slf4jpublic class TestEsClient {private RestHighLevelClient client = null;private ObjectMapper objectMapper = new ObjectMapper();//构建 RestHighLevelClient@Beforepublic void prepare() {// 创建Client连接对象String[] ips = {"172.16.225.111:9200"};HttpHost[] httpHosts = new HttpHost[ips.length];for (int i = 0; i < ips.length; i++) {httpHosts[i] = HttpHost.create(ips[i]);}RestClientBuilder builder = RestClient.builder(httpHosts);client = new RestHighLevelClient(builder);}}
3.创建索引 client.indices().create创建索引 需要使用 CreateIndexRequest 对象 , 操作 索引基本上是 client.indices().xxx
构建 CreateIndexRequest 对象
经验总结扩展阅读
- Hyperf使用ElasticSearch记录
- Mysql通过Canal同步Elasticsearch
- 4 Java注解:一个真实的Elasticsearch案例
- 3 Java注解:一个真实Elasticsearch案例
- 2. 单主机 Elasticsearch 双节点或多节点集群环境部署
- JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践