栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot整合Elasticsearch

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合Elasticsearch

@PostMapping("selectEs")
    public ResultResponse selectEs(String sname) throws IOException {
        SearchRequest searchRequest = new SearchRequest("student");
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        //模糊查询➕高亮
        if (!StringUtils.isEmpty(sname)){
            //设置高亮的前缀后缀
            HighlightBuilder highlightBuilder = new HighlightBuilder().preTags("").postTags("").field("sname");
            //指定模糊查询的字段
            MultiMatchQueryBuilder queryBuilder = QueryBuilders.multiMatchQuery(sname, "sname");
            //放入查询构造器
            searchSourceBuilder.highlighter(highlightBuilder);
            searchSourceBuilder.query(queryBuilder);
        }
        //将查询条件放入查询容器
        searchRequest.source(searchSourceBuilder);
        //执行条件查询
        SearchResponse search = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
        //获取查询数据
        SearchHits hits = search.getHits();
        SearchHit[] hits1 = hits.getHits();
        //创建ArrayList集合用于存储数据
        List studentList= new ArrayList<>();
        //遍历数据
        for (SearchHit documentFields : hits1) {
            //获取需要的数据集合
            Map sourceAsMap = documentFields.getSourceAsMap();
            //将集合中的数据Set进对象
            Student student = new Student();
            student.setSid((Integer) sourceAsMap.get("sid"));
            student.setSname((String) sourceAsMap.get("sname"));
            student.setAddress((String) sourceAsMap.get("address"));

            //高亮
            Map highlightFields = documentFields.getHighlightFields();
            if (highlightFields!=null){
                HighlightField highlightField = highlightFields.get("sname");
                if (highlightField!=null){
                    Text[] snames = highlightField.getFragments();
                    if (snames!=null){
                                //对高亮的字段进行重新赋值
                            student.setSname(snames[0].toString());
                    }
                }
            }
            //将赋完值得对象放入List数组
            studentList.add(student);
        }
        return ResultResponse.SUCCESS(studentList);
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349605.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号