springboot操作ES查询
时间: 2023-10-27 08:17:01 浏览: 85
可以使用 Spring Data Elasticsearch 来操作 Elasticsearch。
首先需要在项目的 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
然后在 application.yml 中配置 Elasticsearch 的连接信息:
```yaml
spring:
data:
elasticsearch:
cluster-name: elasticsearch # Elasticsearch 集群名称
cluster-nodes: localhost:9200 # Elasticsearch 集群节点
```
接下来,可以使用 ElasticsearchTemplate 来操作 Elasticsearch。
例如,假设 Elasticsearch 中有一个名为 "book" 的索引,其中包含了 "name" 和 "author" 两个字段,可以使用以下代码进行查询:
```java
@Autowired
private ElasticsearchTemplate elasticsearchTemplate;
public List<Book> search(String keyword) {
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.should(QueryBuilders.matchQuery("name", keyword))
.should(QueryBuilders.matchQuery("author", keyword));
SearchQuery searchQuery = new NativeSearchQueryBuilder()
.withQuery(queryBuilder)
.build();
List<Book> books = elasticsearchTemplate.queryForList(searchQuery, Book.class);
return books;
}
```
其中,QueryBuilder 用于构建查询条件,SearchQuery 用于构建查询对象,elasticsearchTemplate.queryForList 方法用于执行查询并返回结果。
需要注意的是,在进行查询之前,需要先创建对应的实体类,并使用 @Document 注解标注实体类所对应的索引名称和类型名称:
```java
@Document(indexName = "book", type = "book")
public class Book {
private String id;
private String name;
private String author;
// 省略 getter 和 setter 方法
}
```
以上就是使用 Spring Data Elasticsearch 操作 Elasticsearch 的基本流程。
阅读全文