上代碼,在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的圖形化界面操作:
查詢結果如下