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