spring-data-elasticsearch分页查询

本文介绍了如何使用Spring Data Elasticsearch进行分页查询,包括使用first和top限制查询结果集大小,并且支持在结果集中应用Distinct关键字。此外,讲解了在排序基础上限制结果集大小以获取最大或最小K个元素的方法。针对大结果集,文章提到了Elasticsearch的Scan和Scroll技术,并展示了如何在Spring Data Elasticsearch中实现大结果集的处理。
摘要由CSDN通过智能技术生成
	@Test
	public void testQueryPage() {
		QueryBuilder orderQuery = QueryBuilders.boolQuery()
				.must(QueryBuilders.matchQuery("orderType", "RO"));
		Page<OrderItem> page = orderRepository.search(orderQuery, PageRequest.of(0, 1));
		System.out.println(page);

		page = orderRepository.search(orderQuery, PageRequest.of(1, 1));
		System.out.println(page);
	}
附录:
1、从名字就能看出来,QueryBuilder主要用来构建查询条件、过滤条件,SortBuilder主要是构建排序。
譬如,我们要查询距离某个位置100米范围内的所有人、并且按照距离远近进行排序:
	double lat = 39.929986;  
	double lon = 116.395645;  
  
        Long nowTime = System.currentTimeMillis();  
        //查询某经纬度100米范围内  
        GeoDistanceQueryBuilder builder = QueryBuilders.geoDistanceQuery("address").point(lat, lon)  
                .distance(100, DistanceUnit.METERS);  
  
        GeoDistanceSortBuilder sortBuilder = SortBuilders.geoDistanceSort("address")  
                .point(lat, lon)  
                .unit(DistanceUnit.METERS)  
                .order(SortOrder.ASC);  
  
        Pageable pageable = new PageRequest(0, 50);  
  
        NativeSearchQueryBuilder builder1 = new NativeSearchQueryBuilder().withFilter(builder).withSort(sortBuilder).withPageable(pageable);  
	SearchQuery searchQuery = builder1.build();  
2、

限定查询结果集大小

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值