「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
1、SpringBoot 集成 ES
1、新建一个Spring Boot 项目,添加 ElasticSearch 模块:
2、修改ES版本
可以看到,SpringBoot帮我们导入的ES版本是7.12.1:
而我们本地使用的版本是7.8.0,所以为了防止连接ES失败,要把版本号修改过成和本地一致。
1 | xml复制代码<!-- 在pom.xml文件的properties属性下面添加: --> |
一定要确保修改成功。
3、编写配置文件
1 | java复制代码package com.cheng; |
到这里,ElasticSearch和SpringBoot的集成就完成了,下面就是关于索引和文档API的使用。
Java REST Client
Java REST Client 有两种风格:
- Java Low Level REST Client :用于Elasticsearch的官方低级客户端。它允许通过http与Elasticsearch集群通信。将请求编排和响应反编排留给用户自己处理。它兼容所有的Elasticsearch版本。
- Java High Level REST Client :用于Elasticsearch的官方高级客户端。它是基于低级客户端的,它提供很多API,并负责请求的编排与响应的反编排。
- 官方更建议我们用Java High Level REST Client,它执行HTTP请求,而不是序列号的Java请求。
下面测试使用的是 Java 高级客户端。
2、索引的API操作详解
创建索引
1 | java复制代码 //创建索引测试 |
RestHighLevelClient中的所有API都接受RequestOptions,您可以使用该选项定制请求,而不会改变Elasticsearch执行请求的方式。例如,您可以在此处指定一个节点选择器来控制哪个节点接收请求。
判断索引是否存在
1 | java复制代码 //判断索引是否存在,存在返回true,不存在返回false |
删除索引
1 | java复制代码 //删除索引 |
3、文档的API操作详解
添加文档
实体类:
1 | java复制代码@Component |
添加文档代码:
1 | java复制代码 @Test |
判断文档是否存在
1 | java复制代码 //判断文档是否存在 |
获取文档信息
1 | java复制代码 //获取文档信息 |
修改文档信息
1 | java复制代码 //修改文档信息 |
删除文档
1 | java复制代码 //删除文档 |
批量插入文档
BulkRequest:批量请求包含有序的IndexRequest 、 DeleteRequest 和UpdateRequest ,并允许在单个批处理中执行它。 请注意,我们仅支持批量请求而不是每个项目的刷新。
1 | java复制代码 //批量插入文档 |
根据具体的需求调用下面的方法。
复杂查询操作
1、构建查询请求:SearchRequest request = new SearchRequest(“wanli_index”);
2、构建搜索条件:SearchSourceBuilder sourceBuilder = SearchSourceBuilder.searchSource();
3、将查询条件放入请求:request.source(sourceBuilder);
4、执行请求:SearchResponse response = client.search(request, RequestOptions.DEFAULT);
1 | java复制代码@Test |
本文转载自: 掘金