muugua 发表于 2017-12-19 15:22:32

10.solr学习速成之高亮显示

package>
import java.io.IOException;  

import java.util.ArrayList;  

import java.util.List;  

import java.util.Map;  

import org.apache.solr.client.solrj.SolrQuery;  

import org.apache.solr.client.solrj.SolrServerException;  

import org.apache.solr.client.solrj.impl.HttpSolrClient;  

import org.apache.solr.client.solrj.response.QueryResponse;  

import org.apache.solr.common.SolrDocument;  

import org.apache.solr.common.SolrDocumentList;  

public>public static void search(){  HttpSolrClient server
= solrServer.getServer();  SolrQuery query
= new SolrQuery();  query.setQuery(
"name_s:wanglctest*");  query.setHighlight(
true);//开启高亮功能  query.addHighlightField("name_s");//高亮字段
  query.setHighlightSimplePre("<font color='red'>");//渲染标签
  query.setHighlightSimplePost("</font>");//渲染标签
  query.setStart(0);
  query.setRows(
20);  QueryResponse queryResponse;
try {  queryResponse
= server.query(query);  SolrDocumentList lists
= queryResponse.getResults();//查询结果集  List<student> items = new ArrayList<student>();
  String tmpId = "";
  Map<String, Map<String, List<String>>> highLightMap = queryResponse.getHighlighting();
  for(SolrDocument solrDocument: lists){
  student stu = new student();
  tmpId = solrDocument.getFieldValue("id").toString();
  stu.setId(tmpId);
  stu.setScore_i((int) solrDocument.getFieldValue("score_i"));
  stu.setName_s(solrDocument.getFieldValue("name_s").toString());
  List<String> nameList = highLightMap.get(tmpId).get("name_s");
  if(nameList!=null && nameList.size()>0){
  stu.setName_s(nameList.get(0));//获取并设置高亮字段name
  
                }
  System.out.println(stu.getScore_i() + " | " +stu.getName_s());
  }
  } catch (SolrServerException e) {
  e.printStackTrace();
  } catch (IOException e) {
  e.printStackTrace();
  }
  }
  public static void main(String[] args) {
  search();
  }
  
}
页: [1]
查看完整版本: 10.solr学习速成之高亮显示