spring-data-solr高亮查询分析详解
上代码,在item_title字段中显示高亮的查询条件
//高亮查询
HighlightQuery highlightQuery = new SimpleHighlightQuery();
//设置高亮域
HighlightOptions hiOptions = new HighlightOptions().addField("item_title");
//设置高亮域的显示样式
hiOptions.setSimplePrefix("<em style='color:red'>");
hiOptions.setSimplePostfix("</em>");
//设置高亮选项
highlightQuery.setHighlightOptions(hiOptions);
//获取查询条件
Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords"));
//添加条件
highlightQuery.addCriteria(criteria);
//带高亮查询
HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(highlightQuery, TbItem.class);
//获取高亮入口集合
List<HighlightEntry<TbItem>> list = page.getHighlighted();
//遍历高亮入口
for(HighlightEntry<TbItem> h : list) {
TbItem tbItem = h.getEntity();
//获取高亮列表
List<Highlight> highlights = h.getHighlights();
for (Highlight hh : highlights) {
List<String> snipplets = hh.getSnipplets();//获取高亮域
//将高亮的字段重新设置到title中
for (String title : snipplets) {
tbItem.setTitle(title);
}
}
}
通过solr的图形化界面操作:
查询结果如下