springboot集成es分页查询
时间: 2024-09-19 14:10:41 浏览: 48
SpringBoot集成Elasticsearch(已实现各种ES操作,上手即可用)
5星 · 资源好评率100%
Spring Boot 集成 Elasticsearch 进行分页查询通常涉及到以下几个步骤:
1. 添加依赖:首先,你需要在你的 Maven 或 Gradle 项目中添加 Spring Data Elasticsearch 和 Elasticsearch REST客户端的依赖。
Maven 示例:
```xml
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
```
2. 创建配置:在 `application.properties` 或 `application.yml` 中设置 Elasticsearch 的连接信息,如集群地址、认证等。
3. 实现 Repository 接口:创建一个继承自 `ElasticsearchRepository` 的接口,并指定映射到的索引和文档类型。例如:
```java
public interface ProductRepository extends ElasticsearchRepository<Product, String> {
Page<Product> findByPriceGreaterThan(double price, Pageable pageable);
}
```
这里的 `Product` 是你的数据模型,`findByPriceGreaterThan` 是你定义的一个查询方法,`Pageable` 可用于传递分页参数。
4. 分页查询:在服务层或控制器中,你可以通过注入 `ProductRepository` 调用分页查询方法:
```java
@Autowired
private ProductRepository productRepository;
@GetMapping("/products")
public Page<Product> searchProducts(@RequestParam("price") Double price, @RequestParam(defaultValue = "0") int page, @RequestParam(defaultValue = "10") int size) {
return productRepository.findByPriceGreaterThan(price, PageRequest.of(page, size));
}
```
这里 `price` 是查询条件,`page` 和 `size` 分别表示页数和每页的大小。
阅读全文