首页 »编程综合 » lucene高亮:Lucene高亮Highlighter-demo源码 »正文
lucene高亮:Lucene高亮Highlighter-demo源码
来源: 发布时间:星期四, 2009年1月15日 浏览:18次 评论:0
java 代码 packagecom.feedsky.lucene; importjava.io.StringReader; importorg.apache.lucene.analysis.Analyzer; importorg.apache.lucene.analysis.TokenStream; importorg.apache.lucene.document.Document; importorg.apache.lucene.document.Field; importorg.apache.lucene.index.IndexWriter; importorg.apache.lucene.queryParser.QueryParser; importorg.apache.lucene.search.Hits; importorg.apache.lucene.search.IndexSearcher; importorg.apache.lucene.search.Query; importorg.apache.lucene.search.highlight.Highlighter; importorg.apache.lucene.search.highlight.QueryScorer; importorg.apache.lucene.search.highlight.SimpleFragmenter; importorg.apache.lucene.search.highlight.SimpleHTMLFormatter; importorg.apache.lucene.store.Directory; importorg.apache.lucene.store.RAMDirectory; publicHighLighterTest { publicvoid(Stringargs) { StringfieldName="text"; Stringtext="越狱3播出时间再次延期急煞中国“狱友”巨型变形金刚惊现北京龙珠Z绝招威力排行不能说秘密清纯版迅雷宽频合作发行越狱动画版";//检索内容 //采用猎兔分词 Analyzeranalyzer=CnAnalyzer; Directorydirectory=RAMDirectory; try { //索引 IndexWriteriwriter=IndexWriter(directory,analyzer,true); iwriter.MaxFieldLength(25000); Documentdoc=Document; doc.add(Field(fieldName,text,Field.Store.YES, Field.Index.TOKENIZED, Field.TermVector.WITH_POSITIONS_OFFSETS)); iwriter.addDocument(doc); iwriter.close; IndexSearcherisearcher=IndexSearcher(directory); QueryParserqueryParse=QueryParser(fieldName,analyzer); Queryquery=queryParse.parse("越狱"); Hitshits=isearcher.search(query); for(i=0;i<hits.length;i){ DocumentdocTemp=hits.doc(i); Stringvalue=docTemp.get(fieldName); // 对要高亮显示字段格式化这里只是加红色显示和加粗 SimpleHTMLFormattersHtmlF=SimpleHTMLFormatter("<b><fontcolor='red'>","</font></b>"); Highlighterhighlighter=Highlighter(sHtmlF,QueryScorer(query)); highlighter.TextFragmenter(SimpleFragmenter(10)); (value!=null){ TokenStreamtokenStream=analyzer.tokenStream(fieldName,StringReader(value)); Stringstr=highlighter.getBestFragment(tokenStream,value); .out.prln(str); } } isearcher.close; directory.close; } catch(Exceptione) { e.prStackTrace; } } } 运行结果为: <b><font color='red'>越狱</font></b>3 播出时间
相关文章
读者评论
发表评论
|
|