solr 高亮springdatasolr
阿新 • • 發佈:2018-07-27
amp pre put new data ted epo sea wire
1 @Autowired 2 private SolrTemplate solrTemplate; 3 4 @Override 5 public Map<String, Object> search(Map searchMap) { 6 return searchList(searchMap); 7 } 8 9 //被本類調用 10 private Map searchList(Map searchMap){ 11 12 SimpleHighlightQuery highlightQuery = newSimpleHighlightQuery(new Criteria("hyd_keywords").is(searchMap.get("keywords"))); 13 highlightQuery.setHighlightOptions(new HighlightOptions().addField("hyd_title").setSimplePrefix("<em style=‘color:red‘>").setSimplePostfix("</em>")); 14 HighlightPage<TbItem> page = solrTemplate.queryForHighlightPage(highlightQuery, TbItem.class); 15 16 for (HighlightEntry<TbItem> highlightEntry : page.getHighlighted()) { 17 TbItem tbItem = highlightEntry.getEntity(); 18 19 if(highlightEntry.getHighlights().size()>0 && highlightEntry.getHighlights().get(0).getSnipplets().size()>0){20 tbItem.setTitle(highlightEntry.getHighlights().get(0).getSnipplets().get(0));//設置高亮的結果 21 } 22 } 23 24 HashMap<String, Object> hashMap = new HashMap<>(); 25 hashMap.put("rowsHyd", page.getContent()); 26 return hashMap; 27 }
pyg search 高亮搜索
思路:創建個SimpleHighlightQuery ,往裏丟個條件Criteria,在丟個 滿足條件 的時候 什麽東西 要去幹什麽事(HighlightOptions中設置), 把前面的東西 丟到 查詢中,並給個要返回什麽類型(反射),拿到 東西 哢哢一頓 設置,最後再通過getContent()拿到設置完的東西
solr 高亮springdatasolr