Solr 高亮查詢程式碼記錄
阿新 • • 發佈:2018-11-29
/** * 高亮查詢 */ //建立高亮查詢 SimpleHighlightQuery query = new SimpleHighlightQuery(); //設定查詢選項 HighlightOptions highlightOptions = new HighlightOptions().addField("item_title");//需要將具體的域設定為高亮顯示,這裡設定複製域無效 highlightOptions.setSimplePrefix("<em style='color:red'>"); highlightOptions.setSimplePostfix("</em>"); //將設定好的選項加入查詢 query.setHighlightOptions(highlightOptions); //建立查詢條件,加入輸入的關鍵詞,,設定要查的欄位,,後面匹配關鍵詞 Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords")); //加入查詢 query.addCriteria(criteria); //執行查詢 HighlightPage<TbItem> tbItems = solrTemplate.queryForHighlightPage(query, TbItem.class); //此時這個結果不是高亮的結果 List<HighlightEntry<TbItem>> page = tbItems.getHighlighted();//獲取高亮條目 for (HighlightEntry<TbItem> entry : page) { TbItem TbItem = entry.getEntity();//原查詢結果物件 if (entry.getHighlights().size()>0&&entry.getHighlights().get(0).getSnipplets().size()>0) { //不為 空值 就把高亮結果設定進去 TbItem.setTitle(entry.getHighlights().get(0).getSnipplets().get(0)); } } //獲取結果,設定到map集合中返回給前臺 resultMap.put("itemList", tbItems.getContent()); return resultMap;
記錄下高亮查詢的程式碼寫法...以備以後要用...