ElasticsearchClient分页查询,排序


前言

如何创建新版客户端我就不说了,之前文章写的有
https://blog.csdn.net/qq_35270805/article/details/125231511

一、直接上代码

SearchResponse<DeviceData> deviceDatas = elasticsearchClientService.getClient().search(
                    s -> s
                            .index(indexName)
                            .query(q -> q
                                    .match(t -> t
                                            .field("deviceNo")
                                            .query(no)
                                    )
                            )
                            .from(page) //页数
                            .size(size)	//条数
                            .sort(  //通过字段排序
                                    sort -> sort
                                            .field(f -> f
                                                    .field("createTime")
                                                    .order(SortOrder.Desc))
                            ),
                    DeviceData.class  //要映射的实体类
            )

查出的数据如何遍历,这里用stream方法就比较方便了

		//这里是上一步返回的SearchResponse<DeviceData>
		deviceDatas 
                .hits()
                .hits()
                .stream()
                .map(Hit::source)
                .collect(Collectors.toList())); //这个可以返回实体文档列表
		//这里是上一步返回的SearchResponse<DeviceData>
		deviceDataSearchResponse.hits().total().value();  //这个可以返回总数目,方便前端分页

版权声明:本文为qq_35270805原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。