日期:2014-05-17  浏览次数:20639 次

关于lucene在弹出窗口中高亮的问题
使用lucene搜索完成后的列表中的高亮很好实现,lucene提供了相应的方法支持。
我现在的需求是想在用户点击链接后弹出窗口中也要高亮显示关键字,请教各位有什么思路?

高分奉上。



------解决方案--------------------
本人先来个抛砖引玉吧,以搜索产品名称或简介为例:
可以将链接上加上搜索关键字参数,例如 showDetail.action?productid=123&keyword=高亮;
然后在action代码中根据productid查询出product,假设有name和detail属性分别表示产品名称和简介,并且有相应的getter/setter方法;
那么可以这样:String primaryName = product.getName();String primaryDetail = product.getDetail();
然后将其中包含的关键字添加上高亮的标签:String keyword = request.getParameter("keyword");
product.setName(primaryName.replace(keyword, "<font color='red'>" + keyword + "</font>"));
product.setDetail(primaryDetail.replace(keyword, "<font color='red'>" + keyword + "</font>"));
然后将这个product设置到request中即可: request.setAttribute("product", product);
然后在页面上调用这个request中的产品时,显示出来的name和detail都将是添加了高亮标签的。

以上代码没有在IDE工具中编写,有些地方可能需要修改,仅供楼主参考。
------解决方案--------------------
不知道你弹出的是否是别人的网站 还是你本地爬去 或者收集的信息

这本身就没有好的解决方案 因为网站上的布局杂乱你不知道你替换的内容在什么地方 是否支持标签
------解决方案--------------------
这个效率是个问题 不过感觉可以先用用
------解决方案--------------------
通过js来处理,按照关键字,标红。不再服务器端处理这个,把压力转到客户端去。