/**
* 高亮查询
*/
//创建高亮查询
SimpleHighlightQuery query = new SimpleHighlightQuery();
//设置查询选项
HighlightOptions highlightOptions = new HighlightOptions().addField("item_title");//需要将具体的域设置为高亮显示,这里设置复制域无效
highlightOptions.setSimplePrefix("<em style='color:red'>");
highlightOptions.setSimplePostfix("</em>");
//将设置好的选项加入查询
query.setHighlightOptions(highlightOptions);
//创建查询条件,加入输入的关键词,,设置要查的字段,,后面匹配关键词
Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords"));
//加入查询
query.addCriteria(criteria);
//执行查询
HighlightPage<TbItem> tbItems = solrTemplate.queryForHighlightPage(query, TbItem.class);
//此时这个结果不是高亮的结果
List<HighlightEntry<TbItem>> page = tbItems.getHighlighted();//获取高亮条目
for (HighlightEntry<TbItem> entry : page) {
TbItem TbItem = entry.getEntity();//原查询结果对象
if (entry.getHighlights().size()>0&&entry.getHighlights().get(0).getSnipplets().size()>0) {
//不为 空值 就把高亮结果设置进去
TbItem.setTitle(entry.getHighlights().get(0).getSnipplets().get(0));
}
}
//获取结果,设置到map集合中返回给前台
resultMap.put("itemList", tbItems.getContent());
return resultMap;
记录下高亮查询的代码写法...以备以后要用...