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

在這裏插入圖片描述

查詢結果如下在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章