Solr 高亮查询代码记录

        /**
         * 高亮查询
         */
        //创建高亮查询
        SimpleHighlightQuery query = new SimpleHighlightQuery();
        //设置查询选项
        HighlightOptions highlightOptions = new HighlightOptions().addField("item_title");//需要将具体的域设置为高亮显示,这里设置复制域无效
        highlightOptions.setSimplePrefix("<em style='color:red'>");
        highlightOptions.setSimplePostfix("</em>");
        //将设置好的选项加入查询
        query.setHighlightOptions(highlightOptions);
        //创建查询条件,加入输入的关键词,,设置要查的字段,,后面匹配关键词
        Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords"));
        //加入查询
        query.addCriteria(criteria);
        //执行查询
        HighlightPage<TbItem> tbItems = solrTemplate.queryForHighlightPage(query, TbItem.class);
        //此时这个结果不是高亮的结果
        List<HighlightEntry<TbItem>> page = tbItems.getHighlighted();//获取高亮条目
        for (HighlightEntry<TbItem> entry : page) {
            TbItem TbItem = entry.getEntity();//原查询结果对象
            if (entry.getHighlights().size()>0&&entry.getHighlights().get(0).getSnipplets().size()>0) {
                //不为 空值 就把高亮结果设置进去
                TbItem.setTitle(entry.getHighlights().get(0).getSnipplets().get(0));
            }
        }
//获取结果,设置到map集合中返回给前台
        resultMap.put("itemList", tbItems.getContent());
        return resultMap;

记录下高亮查询的代码写法...以备以后要用...

猜你喜欢

转载自blog.csdn.net/weixin_40427212/article/details/84205168