Spring Boot 整合 分布式搜索引擎 Elastic Search 实现 搜索、分页与结果过滤
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.query.Criteria;
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
import org.springframework.stereotype.Service;
@Service
public class SearchService {
@Autowired
private ElasticsearchRestTemplate elasticsearchRestTemplate;
public Page<Item> searchItems(String query, int page, int size) {
Criteria criteria = new Criteria().matchAllQueryString(query);
CriteriaQuery queryBuilder = new CriteriaQuery(criteria);
PageRequest pageRequest = PageRequest.of(page, size);
queryBuilder.setPageable(pageRequest);
// 执行搜索并获取结果
return elasticsearchRestTemplate.queryForPage(queryBuilder, Item.class);
}
}
这段代码展示了如何在Spring Boot应用中使用ElasticsearchRestTemplate
来执行搜索查询,并且实现了分页功能。searchItems
方法接收查询字符串query
和分页参数page
、size
,然后构建一个CriteriaQuery
并设置分页信息。最后,使用elasticsearchRestTemplate.queryForPage
方法执行查询并返回Page<Item>
对象。
评论已关闭