东莞seo建站优化方法,宣传手册word模板,网站怎样制作,北京 网站 优化本文使用SpringBoot整合ElasticSearch实现分页查询 文章目录 环境准备分页查询方式一方式二 本文小结 环境准备 还是继续使用spring-boot-starter-data-elasticsearch来实现分页查询操作 !-- spring-boot-starter-data-elasticsearch--
dependencygroupId!-- spring-boot-starter-data-elasticsearch--
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-elasticsearch/artifactIdversion2.6.6/version
/dependency数据准备 分页查询
方式一 使用ElasticsearchRestTemplate来实现 import cn.wideth.po.Article;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;Slf4j
Api(value es分页查询测试)
RestController
RequestMapping(/api/listEs)
public class ArticleListController {Autowiredprivate ElasticsearchRestTemplate elasticsearchRestTemplate;// 分页列表查询// 旧版本的 Repository 中的 search 方法被废弃了。// 这里采用 ElasticSearchRestTemplateGetMapping(/pageList)ApiOperation(ES分页查询-方法一)public Map pageList(Integer currentPage, Integer limit) {NativeSearchQuery query new NativeSearchQuery(new BoolQueryBuilder());query.setPageable(PageRequest.of(currentPage, limit));// 方法1SearchHitsArticle searchHits elasticsearchRestTemplate.search(query, Article.class);ListArticle articles searchHits.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());Map jsonResult new LinkedHashMap();jsonResult.put(count, searchHits.getTotalHits());jsonResult.put(articles, articles);return jsonResult;}
}程序结果 方式二 使用ElasticsearchOperations来实现 import cn.wideth.po.Article;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;Slf4j
Api(value es分页查询测试2)
RestController
RequestMapping(/api/listEs)
public class ArticleListTwoController {Autowiredprivate ElasticsearchOperations elasticsearchOperations;// 分页列表查询// 旧版本的 Repository 中的 search 方法被废弃了。// 这里采用 ElasticsearchOperations 来进行分页查询GetMapping(/pageList2)ApiOperation(ES分页查询-方法二)public Map pageList2(Integer currentPage, Integer limit) {NativeSearchQuery query new NativeSearchQuery(new BoolQueryBuilder());query.setPageable(PageRequest.of(currentPage, limit));// 方法2SearchHitsArticle searchHits elasticsearchOperations.search(query, Article.class);ListArticle articles searchHits.getSearchHits().stream().map(SearchHit::getContent).collect(Collectors.toList());Map jsonResult new LinkedHashMap();jsonResult.put(count, searchHits.getTotalHits());jsonResult.put(articles, articles);return jsonResult;}} 程序结果 本文小结
本文记录了SpringBoot整合ElasticSearch来实现分页查询的两种方式