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的图形化界面操作:

spring-data-solr高亮查询分析详解

查询结果如下spring-data-solr高亮查询分析详解