1. 程式人生 > >Solr===>>查詢結果高亮顯示===>>程式碼僅將查詢到的第一個solr域中的第一個值高亮顯示

Solr===>>查詢結果高亮顯示===>>程式碼僅將查詢到的第一個solr域中的第一個值高亮顯示

// 查詢結果高亮顯示
	public Map<String, Object> searchHightLight(Map searchMap){
		Map map=new HashMap();
		HighlightQuery query = new SimpleHighlightQuery();
		//===========設定高亮相關的選項=============
		// 設定高亮的域
		HighlightOptions highlightOptions = new HighlightOptions().addField("item_title");
		// 設定高亮字首
		highlightOptions.
setSimplePrefix("<em style='color:red' >"); // 設定高亮字尾 highlightOptions.setSimplePostfix("</em>"); // 設定高亮選項到 query 物件中 query.setHighlightOptions(highlightOptions); //=============按照關鍵字查詢============== Criteria criteria = new Criteria("item_keywords").is(searchMap.get("item_keywords"
)); query.addCriteria(criteria); // 查詢 HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(query, TbItem.class); //高亮入口集合 List<HighlightEntry<TbItem>> highlighted = page.getHighlighted(); // 獲取高亮內容 for (HighlightEntry<TbItem> h : highlighted) { TbItem item =
h.getEntity();// 獲取原實體類 if (h.getHighlights().size() > 0 && h.getHighlights().get(0).getSnipplets().size() > 0) { //將獲取的高亮內容設定回原本的 查詢結果(page.getContent() 等同於h.getEntity()的集合) item.setTitle(h.getHighlights().get(0).getSnipplets().get(0));// 設定高亮的結果 } } map.put("rows",page.getContent()); return map; }

注意 這個高亮查詢程式碼僅將查詢到的第一個solr域中的第一個值高亮顯示