Solr搜索高亮

1、SolrQuery类,此类有个方法setHighlight(true),当设置为true时,表示开启了高亮

2、高亮设置,添加html,和设置高亮的Field

    // 以下给两个字段开启了高亮,分别是name,description,
    query.addHighlightField("name"); 
    query.addHighlightField("description"); 
    // 以下两个方法主要是在高亮的关键字前后加上html代码
    query.setHighlightSimplePre("<font color=\"red\">"); 
    query.setHighlightSimplePost("</font>"); 

3、获取高亮内容

Map<String,Map<String,List<String>>> map = response.getHighlighting(); 

Map的Key为document的Id,即你在schema.xml中设置的Id,Value为该Id对应的document的值,请听下面分 解,Value也为一个Map,该Map的Key为fieldName,Value为List<String>,这个List里面的内容该文 档的高亮字段。

所以当做逻辑处理的时候,只要按照这个层次,依次把东西给取出来即可,如果取出来的东西为空,则用QueryResponse中的SolrDocument的getFieldValue(filedName)的值。

posted @ 2012-05-24 18:13  浪浪仔  阅读(2851)  评论(0编辑  收藏  举报