Solr高亮设置

//solr的高亮显示
private Map searchList(Map searchMap){

Map map=new HashMap();

HighlightQuery 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);
//page为结果的原生对象
HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(query,TbItem.class);
//h为item经过spring封装的类      //高亮入口集合    
for(HighlightEntry<TbItem> h: page.getHighlighted()){
//获取原实体类
TbItem item = h.getEntity();

    if(h.getHighlights().size()>0 && h.getHighlights().get(0).getSnipplets().size()>0)
        {
            //设置高亮的结果
            item.setTitle(h.getHighlights().get(0).getSnipplets().get(0));
        } 
    } 
    map.put("rows",page.getContent());
    return map;
}

高亮可设置在多个域中(这里只有一个域)

h.getHighlights().get(0)

单个域中可能包含多个高亮词(这里是一个)

h.getHighlights().get(0).getSnipplets().get(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值