Elasticsearch-springboot 实现分页查询

 @Resource
private ElasticsearchRestTemplate elasticsearchTemplate;
 @Override
 public Page<List<T>> queryHitByPage(int pageNo, int pageSize, String keyword, String[] fieldNames, Class<T> clazz) {
        MultiMatchQueryBuilder queryBuilder =
                buildQueryBuilder(keyword, fieldNames);
        // 设置高亮字段
        HighlightBuilder highlightBuilder =
                builderHighlightBuilder(fieldNames);
        PageRequest pageRequest = PageRequest.of((pageNo-1),pageSize);
        NativeSearchQuery query = new NativeSearchQueryBuilder()
                .withQuery(queryBuilder)
                .withPageable(pageRequest)
                .withHighlightBuilder(highlightBuilder)
                .build();
        SearchHits<T> search = elasticsearchTemplate.search(query, clazz);
        List<T> list = getResultList(fieldNames, search);
        Page<List<T>> page = new Page<>();
        page.setData(list);
        page.setPageNo(pageNo);
        page.setPageSize(pageSize);
        page.setTotalSize((int)search.getTotalHits());
        return page;
    }

elasticsearch版本:7.6.2
elasticsearch7.6.2版本下载:https://download.csdn.net/download/liu20121787/87408135
代码详见:https://gitee.com/strambuff/elastic-search-demo.git

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐