高亮显示小Demo
public class ItemSearchImpl implements ItemSearchService {
/**
* 搜索
*
* @param paramMap
* @return
*/
@Autowired
private SolrTemplate solrTemplate;
@Autowired
private RedisTemplate redisTemplate;
@Override
public Map<String, Object> search(Map paramMap) {
//获取关键字
String keywords = (String) paramMap.get("keywords");
//获取当前页
Integer pageNo = Integer.parseInt(String.valueOf(paramMap.get("pageNo")));
//每页查询多少条
Integer pageSize = Integer.parseInt(String.valueOf(paramMap.get("pageSize")));
//封装查询对象
HighlightQuery query = new SimpleHighlightQuery();
//查询的条件对象·
Criteria criteria = new Criteria("item_keywords").is(keywords);
//将查询条件放入对象
query.addCriteria(criteria);
//计算从第几页开始读
if(pageNo==null || pageNo<=0){
pageNo=1;
}
Integer start = (pageNo-1)*pageSize;
//设置从第几页查询
query.setOffset(start);
//设置每页多少条
query.setRows(pageSize);
//创建高亮显示对象
HighlightOptions highlightOptions = new HighlightOptions();
//设置哪个域需要高亮
highlightOptions.addField("item_title");
//高亮的前缀
highlightOptions.setSimplePrefix("<em style=\" color=red \">");
//高亮的后缀
highlightOptions.setSimplePostfix("</em>");
//将高亮加入到查询对象
query.setHighlightOptions(highlightOptions);
//查询并返回结果
HighlightPage<TbItem> items = solrTemplate.queryForHighlightPage(query, TbItem.class);
//获取带高亮的集合
List<HighlightEntry<TbItem>> highlighted = items.getHighlighted();
List<TbItem> itemList = new ArrayList<>();
//遍历高亮集合
for (HighlightEntry<TbItem> itemHighlightEntry: highlighted) {
TbItem item = itemHighlightEntry.getEntity();
List<HighlightEntry.Highlight> highlights = itemHighlightEntry.getHighlights();
if(highlights!=null && highlights.size()>0){
//获取高亮的标题集合
List<String> highlightTitle = highlights.get(0).getSnipplets();
if(highlightTitle!=null&&highlightTitle.size()>0){
// 获取高亮的标题
String title = highlightTitle.get(0);
item.setTitle(title);
}
}
itemList.add(item);
}
Map<String,Object> resuleMap = new HashMap<>();
//查询到的结果集
resuleMap.put("rows",itemList);
//总页数
resuleMap.put("totalPage",items.getTotalPages());
//总条数
resuleMap.put("total",items.getTotalElements());
return resuleMap;
}
}
。
高亮显示小Demo的更多相关文章
- 仿百度下拉关键词,和关键词的小demo
自己做项目时用到的仿百度下拉关键词 代码: $(function(){ var oTxt = document.getElementById('search_text'); oTxt.onkeyup ...
- 入门Leaflet之小Demo
入门Leaflet之小Demo 写在前面 ---- WebGIS开发基础之Leaflet GIS基本概念:GIS.Map.Layer.Feature.Geometry.Symbol.Data(Poin ...
- 新手 gulp+ seajs 小demo
首先,不说废话,它的介绍和作者就不在多说了,网上一百度一大堆: 我在这里只是来写写我这2天抽空对seajs的了解并爬过的坑,和实现的一个小demo(纯属为了实现,高手请绕道); 一.环境工具及安装 1 ...
- Nancy之基于Nancy.Hosting.Self的小Demo
继昨天的Nancy之基于Nancy.Hosting.Aspnet的小Demo后, 今天来做个基于Nancy.Hosting.Self的小Demo. 关于Self Hosting Nancy,官方文档的 ...
- Nancy之基于Nancy.Owin的小Demo
前面做了基于Nancy.Hosting.Aspnet和Nancy.Hosting.Self的小Demo 今天我们来做个基于Nancy.Owin的小Demo 开始之前我们来说说什么是Owin和Katan ...
- Nancy之基于Self Hosting的补充小Demo
前面把Hosting Nancy with ASP.NET.Self Hosting Nancy和Hosting Nancy with OWIN 以demo的形式简单描述了一下. 这篇是为Self H ...
- [Unity3D]做个小Demo学习Input.touches
[Unity3D]做个小Demo学习Input.touches 学不如做,下面用一个简单的Demo展示的Input.touches各项字段,有图有真相. 本项目已发布到Github,地址在(https ...
- Android -- 自定义View小Demo,动态画圆(一)
1,转载:(http://blog.csdn.NET/lmj623565791/article/details/24500107),现在如下图的效果: 由上面的效果图可以看到其实是一个在一个圆上换不同 ...
- Win10 FaceAPI小demo开发问题汇总
Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...
随机推荐
- js的函数三角恋
原创,转载请标明来源https://www.cnblogs.com/sogeisetsu/ js的函数三角恋 1.什么是构造函数 是专门用于创建对象的 对象就是object **** 1.什么是函数? ...
- 通过async与await实现高效并发
withTimeoutOrNull: 在上一次https://www.cnblogs.com/webor2006/p/12010388.html中对于协程的超时机制进行了一个学习,上次用的是withT ...
- 微信(十一) 使用调试助手申请设备ID和报备流程
以下流程模拟了一个设备,从微信硬件申请一个产品IP,对此ID进行报备生效,查询自己的绑定主人,给绑定主人发送消息的一系列http请求流程. 1 获取微信密钥 下面需要在公众号设备电脑IP白名单的电脑才 ...
- hadoop java.nio.channels.ClosedChannelException
今天在跑一个任务的时候,报错java.nio.channels.ClosedChannelException. INFO mapreduce.Job: Task Id : attempt_152101 ...
- css----单行文本超出部分显示省略号
width: 300px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
- ZROI 暑期高端峰会 A班 Day1 序列数据结构
FBI Warning:本文包含大量人类的本质之一 CF643G 维护一个序列,可以区间赋值,求区间中出现超过 \(p\%\) 的数. 允许输出不对的数,允许重复输出,但是所有对的数都一定要输出.而且 ...
- Flask 中的 request 之 先知道有这么个东西
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- Spring注解和标签的比较说明
待完善.... xml标签 注解 说明 xml的Spring约束头 @Configuration xml约束头表明这是用于spring的的配置文件 @Configuration注解表情这是用于Spri ...
- ECMAScript6-2
1.模板字串.箭头函数 1.1.模板字串 传统js,输出模板 var str='<b>姓名:</b>'+ '<span>lxr</span>'; con ...
- [算法模板]SOS DP
[算法模板]SOS DP 正文 SOS-DP(\(\text{Sum over Subsets}\))是用来解决这样的问题的: 其实就是子集和DP.上面每个\(F[mask]\)里面包含了\(mask ...