springboot 集成ES客户端(服务端有登录验证)
时间: 2023-08-22 16:03:43 浏览: 86
基于SpringBoot的Elasticsearch客户端调用封装工具设计源码
5星 · 资源好评率100%
如果您的 Elasticsearch 服务端有登录验证,那么您需要在 Spring Boot 应用中配置连接凭证。以下是一个示例:
1. 在 `pom.xml` 中添加 Elasticsearch 客户端的依赖:
```xml
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.14.0</version>
</dependency>
```
2. 在 `application.yml` 文件中添加 Elasticsearch 客户端的配置,包括登录凭证:
```yaml
spring:
elasticsearch:
rest:
uris: http://localhost:9200
username: your-username
password: your-password
```
3. 在 Spring Boot 应用中,您可以通过注入 `RestHighLevelClient` 对象来使用 Elasticsearch 客户端。例如,在一个 `@Service` 类中,您可以这样使用 Elasticsearch 客户端进行查询:
```java
@Service
public class MyService {
@Autowired
private RestHighLevelClient client;
public void search() throws IOException {
SearchRequest searchRequest = new SearchRequest("my-index");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.matchQuery("title", "spring boot"));
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
// 处理查询结果
}
}
```
这里的 `RestHighLevelClient` 是 Elasticsearch 客户端提供的高级 REST 客户端,可以方便地进行查询、索引、删除等操作。其中,`SearchRequest` 表示查询请求,`SearchSourceBuilder` 表示查询条件构建器,`QueryBuilders.matchQuery` 表示构建一个匹配查询,查询条件是 `title` 字段匹配关键字 `"spring boot"`。查询结果会被封装在 `SearchResponse` 中,您可以根据自己的需求对其进行处理。
希望这个示例能够对您有所帮助!如果您还有其他问题,请随时提出。
阅读全文