Spring Boot 整合 分布式搜索引擎 Elastic Search 实现 搜索、分页与结果过滤
warning:
这篇文章距离上次修改已过464天,其中的内容可能已经有所变动。
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>对象。
评论已关闭