Lucene之——设置高亮核心代码
2015-10-31 13:39
295 查看
转载请注明出处:/article/8380932.html
不多说,不废话,直接上代码
不多说,不废话,直接上代码
package com.lyz.d; import org.apache.lucene.search.Query; import org.apache.lucene.search.highlight.Formatter; import org.apache.lucene.search.highlight.Highlighter; import org.apache.lucene.search.highlight.QueryScorer; import org.apache.lucene.search.highlight.Scorer; import org.apache.lucene.search.highlight.SimpleFragmenter; import org.apache.lucene.search.highlight.SimpleHTMLFormatter; /** * 高亮工具类 * @author liuyazhuang * */ public class HighlighterUtil { private static Formatter formatter = null; private static Scorer scorer = null; static{ formatter = new SimpleHTMLFormatter("<font color='red'>", "</font>"); } /** * 设置高亮 * @param query:查询的query * @param field:高亮的字段 * @param value:高亮的值 * @param size:大小 * @return:高亮后的数据 */ public static String setHighData(Query query, String field, String value, int size){ String result = null; scorer = new QueryScorer(query); //高亮工具类 Highlighter highlighter = new Highlighter(formatter, scorer); //设置数据长度 highlighter.setTextFragmenter(new SimpleFragmenter(size)); try { result = highlighter.getBestFragment(Configuration.getAnalyzer(), field, value); if(result == null){ if(value.length() > size){ result = value.substring(0, size); }else{ result = value; } } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } return result; } }
相关文章推荐
- 解析a++ 与 ++a 的区别
- C++调用python
- C++调用python
- Java图形界面学习---------简易登录界面
- Spring MVC全局异常处理与拦截器校检
- MATLAB 自编3*3中值滤波(含边缘)
- Machine Learning Algorithms Study Notes(5)—Reinforcement Learning
- 图学java基础篇之集合工具
- 图学java基础篇之集合工具
- 04OC之分类Category,协议Protocol,Copy,代码块block
- java编程思想——笔记——持有对象——
- JavaWeb session itcast
- Java中如何删除用hashtable创建的树节点
- SpringMVC中 Redirect后地址栏带参数, 怎么把它去掉.
- java紧耦合与松耦合关系
- python 斐波拉契递归 尾递归 备忘录 动态规划 迭代
- 浅谈php项目开发的总结
- 搭建php环境时解决jpeg6 make: ./libtool:命令未找到
- 逻辑思维推理程序
- 轻量级分布式 RPC 框架 netty+protostuff+zk +Spring