NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder(); BoolQueryBuilder boolQueryBuilder=new BoolQueryBuilder();//这暂wei加入业务查询条件
queryBuilder.withQuery(boolQueryBuilder); //距离限制 GeoDistanceQueryBuilder distanceQueryBuilder=new GeoDistanceQueryBuilder("location"); distanceQueryBuilder.point(latitude,longitude); distanceQueryBuilder.distance("20", DistanceUnit.KILOMETERS);//设置二十千米之内的学校 boolQueryBuilder.filter(distanceQueryBuilder); System.out.println(boolQueryBuilder.toString()); //建立距离排序 GeoDistanceSortBuilder distanceSortBuilder =new GeoDistanceSortBuilder("location", latitude, longitude); distanceSortBuilder.unit(DistanceUnit.KILOMETERS); distanceSortBuilder.order(SortOrder.ASC); //按距离降序,评分降序 queryBuilder.withSort(distanceSortBuilder); queryBuilder.withSort(SortBuilders.fieldSort("score").order(SortOrder.DESC)); queryBuilder.withPageable(PageRequest.of(PageUtil.getPage(param.getPage())-1,PageUtil.getPageSize(param.getPage_size()))); SearchQuery searchQuery=queryBuilder.build(); Page<CourseIndex> page= courseEsRepository.search(searchQuery);