solr 高亮springdatasolr

 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 = new SimpleHighlightQuery(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()拿到设置完的东西

猜你喜欢

转载自www.cnblogs.com/hnqm/p/9376371.html