solr高亮显示
由于SpringData solr框架自身原因,先将上篇博客的bid改成id,不然无法高亮显示
service实现层代码如下
public HighlightPage<Blog> listPagerSolrHighlight(Blog blog, PageBean pageBean) { HighlightQuery query=new SimpleHighlightQuery(); HighlightOptions highlightOptions=new HighlightOptions().addField("item_title").addField("id");//设置高亮的域 highlightOptions.setSimplePrefix("<em style='color:red'>");//高亮前缀 highlightOptions.setSimplePostfix("</em>");//高亮后缀 query.setHighlightOptions(highlightOptions);//设置高亮选项 query.setOffset(Long.valueOf(pageBean.getStartIndex()));//开始索引(默认0) query.setRows(pageBean.getRows());//每页记录数(默认10) //按照关键字查询 // if(blog != null && StringUtils.isNotBlank(blog.getTitle())){ Criteria criteria=new Criteria("item_title").is(blog.getTitle()); criteria = criteria.contains(1+""); query.addCriteria(criteria); // } HighlightPage<Blog> page = solrTemplate.queryForHighlightPage("new_core",query, Blog.class); for(HighlightEntry<Blog> h: page.getHighlighted()){//循环高亮入口集合 Blog item = h.getEntity();//获取原实体类 if(h.getHighlights().size()>0 && h.getHighlights().get(0).getSnipplets().size()>0){ item.setTitle(h.getHighlights().get(0).getSnipplets().get(0));//设置高亮的结果 } } return page; }
controler层
复制域
手动添加复制域字段,或者在solr服务器上添加也可以,推荐界面上添加,这样无需重启solr服务
修改service层代码如下
结果如下
所遇问题
org.springframework.data.mapping.MappingException: Id property could not be found
Solr为解决Html攻击问题,会出现页面html代码原样输出的问题
这里将th:text改成th:utext
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有