首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

批改highlighter

2012-12-29 
修改highlighter改写highlighter,得到含有关键词的片段,使关键字居中,同时记录关键词、左词语、右词语的位置

修改highlighter
改写highlighter,得到含有关键词的片段,使关键字居中,同时记录关键词、左词语、右词语的位置信息  怎么修改 请大家指导
[解决办法]

引用楼主 selg1984 的帖子:
改写highlighter,得到含有关键词的片段,使关键字居中,同时记录关键词、左词语、右词语的位置信息  怎么修改 请大家指导


那得需要改源码了吧!
[解决办法]
引用:
是啊 你会不


我没有lucene源代码,不建议修改啊!
[解决办法]
lucene自己有高亮显示的样例的,我发给你个实例吧:

// 高亮处理。
SimpleHTMLFormatter sHtml=new SimpleHTMLFormatter("<font color='red'><b>","</b></font>");  
Highlighter highlighter=new Highlighter(sHtml,new QueryScorer(query)); 
highlighter.setTextFragmenter(new SimpleFragmenter(100)); 
if(title!=null){
title+=" ";
TokenStream tokenStream=analyzer.tokenStream("title",new StringReader(title));
String titleText=highlighter.getBestFragment(tokenStream,title);;
if(titleText==null)titleText="";
                    strtext+=titleText+"  ";;
 }

if(content!=null){  
content+=" ";
TokenStream tokenStream=analyzer.tokenStream("content",new StringReader(content));
String contentText=highlighter.getBestFragment(tokenStream,content);
if(contentText==null)contentText="";
                    strtext+=contentText+"  ";;
 }
if(filedId!=null){  
filedId+=" ";
TokenStream tokenStream=analyzer.tokenStream("uk_file_id",new StringReader(filedId));
String filedIdText=highlighter.getBestFragment(tokenStream,filedId);;
if(filedIdText==null)filedIdText="";
                    strtext+=filedIdText+"  ";
}
if(type!=null){  
type+=" ";
TokenStream tokenStream=analyzer.tokenStream("type",new StringReader(type));
String typetext=highlighter.getBestFragment(tokenStream,type);
if(typetext==null)typetext="";
                    strtext+=typetext+"  ";;
}            

//如果获取高亮显示为空,则取原始数据。bug的一个补充。
if(strtext.trim().equalsIgnoreCase("")){
strtext="标题:"+title+" 内容"+content+" 编号:"+filedId+ "分类:"+type;
}
rs.setResult(strtext);
// System.out.println();
// System.out.println(" id:"+id+"  strtext:"+strtext);
// System.out.println();
list.add(rs);
}

[解决办法]
个人认为没必要把高亮弄得这么复杂,比如 直接 关键词n 对应 蓝色,n+1 对应 黑色 。。。。  直接替换就OK了
[解决办法]
lucene的高亮的却不是很适合生产,我也在尝试更改高亮源码。

热点排行