美文网首页
搭建solr环境并使用

搭建solr环境并使用

作者: 代瑶 | 来源:发表于2021-02-05 09:39 被阅读0次

    https://www.sohu.com/a/281422518_796914
    关于它的介绍

    https://archive.apache.org/dist/lucene/solr/8.0.0/ 下载

    到solr-8.0.0\bin目录下执行
    ./solr start //启动服务
    ./solr stop -all //停止服务

    环境搭建配置
    https://blog.csdn.net/weixin_44253204/article/details/104326273

    讲解查询语句
    https://blog.csdn.net/magicpenta/article/details/82354106

    增删改查
    https://blog.csdn.net/viplisong/article/details/81036051

    image.png

    对搜索数据进行关键字高亮

    
        public static List<ResponseObject> search(SolrQueryUtil q) throws IOException, SolrServerException {
            //创建查询对象
            SolrQuery query = new SolrQuery();
    
            //q查询条件
            query.set("q", q.getQuery());
            //根据id排序
            query.setSort(q.getSort(), SolrQuery.ORDER.asc);
            query.setStart(q.getStart());
            query.setRows(q.getRows());
    
            query.setHighlight(true); // 开启高亮组件或用query.setParam("hl", "true");
            query.addHighlightField("content");// 设置高亮字段
            query.setHighlightSimplePre("<font color='red'>");//标记,高亮关键字前缀
            query.setHighlightSimplePost("</font>");//后缀
    
            //查询响应对象
            QueryResponse response = solrClient.query(query);
    
            Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
            List<ResponseObject> _responseObjs = new ArrayList<>();
    
            //获取查询结果列表
            SolrDocumentList docs = response.getResults();  
            Set<String> highlightSet = highlighting.keySet();
            int highlightIndex = 0;
            for (String itemHighlight : highlightSet) {
                Map<String, List<String>> stringListMap = highlighting.get(itemHighlight);
    
                ResponseObject _responseObj = new ResponseObject();
    
                SolrDocument _itemDoc = docs.get(highlightIndex);
                _responseObj.content =  stringListMap.get("content").toString().replaceAll("\"", "'");
                _responseObj.id = (String) _itemDoc.get("id");
                _responseObj.title =  _itemDoc.get("title");
    
                _responseObjs.add(_responseObj);
    
                highlightIndex++;
            }
            //获取查询出的数量
    //        long count = docs.getNumFound();
            //关闭客户端
            return _responseObjs;
        }
    
    

    相关文章

      网友评论

          本文标题:搭建solr环境并使用

          本文链接:https://www.haomeiwen.com/subject/emjwtltx.html