附近查询
@SpringBootTestpublic class MyTest{    //注入RestHighLevelClient对象    @Autowired    private RestHighLevelClient restHighLevelClient;    @Test    public void test() throws IOException {                //准备SearchRequest请求对象,并指定索引库名        SearchRequest searchRequest = new SearchRequest(索引库名);        //准备MatchAllQueryBuilder查询对象        MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();        //在SearchRequest请求对象中放入MatchAllQueryBuilder查询对象        searchRequest.source().query(matchAllQueryBuilder);        //根据距离进行排序        searchRequest.source().sort(                SortBuilders.geoDistanceSort(地理坐标字段名, new GeoPoint(纬度, 经度)            )            .order(SortOrder.ASC)            .unit(DistanceUnit.KILOMETERS) //指定距离单位        );        //发送请求,得到响应对象        SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);        //从响应对象中获取响应结果        SearchHits searchHits = searchResponse.getHits();        //获取文档的总条数        long total = searchHits.getTotalHits().value;        //获取搜索结果数组        SearchHit[] hits = searchHits.getHits();        //创建文档集合,用于存放结果        List<文档类名> 集合对象名 = new ArrayList<>();        //遍历数组        for (SearchHit hit : hits) {            //获取Json格式的文档内容            String json = hit.getSourceAsString();            //反序列化Json,这里需要引入fastjson的依赖            文档类名 文档对象名 = JSON.parseObject(json, 文档类名.class);            //获取排序值,即获取距离信息            Object[] sortValues = hit.getSortValues();            if (sortValues.length > 0) {                Object sortValue = sortValues[0];                //将距离信息放入文档对象中                文档对象名.set距离(sortValue.toString() + 距离单位);            }            //将结果放入集合            集合对象名.add(文档对象名);        }    }}