solr高亮的使用

今天要说的是关于solr的高亮设置,我一直认为solr的高亮设置封装的还是有一些麻烦的,所以,现在说说到底要怎么用它。

入正题:

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

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


3》//下面是获取高亮的内容
Java代码
  1. 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中注释!
posted @ 2010-03-09 13:35  searchDM  阅读(862)  评论(0编辑  收藏  举报