入正题:
1》首先看SolrQuery类,此类有方法setHighlight(true),当设置为true时,表示开启了高亮
2》 还是SolrQuery类,看方法
Java代码
- // 以下给两个字段开启了高亮,分别是name,description,
- query.addHighlightField("name");
- query.addHighlightField("description");
- // 以下两个方法主要是在高亮的关键字前后加上html代码
- query.setHighlightSimplePre("<font color=\"red\">");
- query.setHighlightSimplePost("</font>");
3》//下面是获取高亮的内容
Java代码
- 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)的值。
对了,请注意在solrConfig.xml中开启高亮组件,这个可以看看官方wiki或者看solrconfig.xml中注释!