专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »编程综合 » 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播出时间

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: