public SolrDocumentList query(String queryText) {
SolrQuery query = new SolrQuery(queryText);
//设置高亮,以下两种方式都行(相当于开启高亮功能)
//query.setHighlight(true);
query.setParam("hl", "true"); //highlighting
//设置高亮显示的请求,高亮显示的内容由该参数决定,但是返回结果还是由SolrQuery决定
//query.setParam("hl.q", "email:zhang@ppstream.com");
/*
* 那些字段高亮显示,可以用空格或者逗号分隔(有一个域的时候正常,两个及以上没测试通过)
* 老版本使用query.addHighlightField("name");query.addHighlightField("description");给多个字段开启高亮功能
*/
query.setParam("hl.fl", "titlename");
//高亮显示字段前后添加html代码
query.setHighlightSimplePre("<font color=\"red\">");
query.setHighlightSimplePost("</font>");
SolrDocumentList list = new SolrDocumentList();
SolrDocument document = null;
QueryResponse response;
try {
response = httpSolrServer().query(query);
SolrDocumentList documents = response.getResults();
//第一个Map的键是文档的ID,第二个Map的键是高亮显示的字段名
Map<String, Map<String, List<String>>> map = response.getHighlighting();
for(int i=0;i<documents.size();i++) {
document = documents.get(i);
document.setField("titlename", map.get(document.getFieldValue("id")).get("titlename"));
/*document.setField("email", map.get(document.getFieldValue("id")).get("email"));*/
list.add(document);
}
} catch (SolrServerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return list;
}
SolrQuery query = new SolrQuery(queryText);
//设置高亮,以下两种方式都行(相当于开启高亮功能)
//query.setHighlight(true);
query.setParam("hl", "true"); //highlighting
//设置高亮显示的请求,高亮显示的内容由该参数决定,但是返回结果还是由SolrQuery决定
//query.setParam("hl.q", "email:zhang@ppstream.com");
/*
* 那些字段高亮显示,可以用空格或者逗号分隔(有一个域的时候正常,两个及以上没测试通过)
* 老版本使用query.addHighlightField("name");query.addHighlightField("description");给多个字段开启高亮功能
*/
query.setParam("hl.fl", "titlename");
//高亮显示字段前后添加html代码
query.setHighlightSimplePre("<font color=\"red\">");
query.setHighlightSimplePost("</font>");
SolrDocumentList list = new SolrDocumentList();
SolrDocument document = null;
QueryResponse response;
try {
response = httpSolrServer().query(query);
SolrDocumentList documents = response.getResults();
//第一个Map的键是文档的ID,第二个Map的键是高亮显示的字段名
Map<String, Map<String, List<String>>> map = response.getHighlighting();
for(int i=0;i<documents.size();i++) {
document = documents.get(i);
document.setField("titlename", map.get(document.getFieldValue("id")).get("titlename"));
/*document.setField("email", map.get(document.getFieldValue("id")).get("email"));*/
list.add(document);
}
} catch (SolrServerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return list;
}