`
ttitfly
  • 浏览: 615935 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

lucene高亮demo

阅读更多
java 代码
  1. package com.feedsky.lucene;   
  2.   
  3. import java.io.StringReader;   
  4.   
  5. import org.apache.lucene.analysis.Analyzer;   
  6. import org.apache.lucene.analysis.TokenStream;   
  7. import org.apache.lucene.document.Document;   
  8. import org.apache.lucene.document.Field;   
  9. import org.apache.lucene.index.IndexWriter;   
  10. import org.apache.lucene.queryParser.QueryParser;   
  11. import org.apache.lucene.search.Hits;   
  12. import org.apache.lucene.search.IndexSearcher;   
  13. import org.apache.lucene.search.Query;   
  14. import org.apache.lucene.search.highlight.Highlighter;   
  15. import org.apache.lucene.search.highlight.QueryScorer;   
  16. import org.apache.lucene.search.highlight.SimpleFragmenter;   
  17. import org.apache.lucene.search.highlight.SimpleHTMLFormatter;   
  18. import org.apache.lucene.store.Directory;   
  19. import org.apache.lucene.store.RAMDirectory;   
  20.   
  21.   
  22.   
  23. public class HighLighterTest   
  24. {   
  25.   
  26.     public static void main(String[] args)   
  27.     {   
  28.         String fieldName = "text";   
  29.         String text = "《越狱3》播出时间再次延期 急煞中国“狱友” 巨型变形金刚惊现北京 《龙珠Z》绝招威力排行 《不能说的秘密》清纯版 迅雷宽频合作发行 《越狱动画版》"//检索内容   
  30.   
  31.         //采用猎兔分词   
  32.         Analyzer analyzer = new CnAnalyzer();   
  33.   
  34.         Directory directory = new RAMDirectory();   
  35.   
  36.         try  
  37.         {   
  38.             //索引   
  39.             IndexWriter iwriter = new IndexWriter(directory, analyzer, true);   
  40.             iwriter.setMaxFieldLength(25000);   
  41.             Document doc = new Document();   
  42.             doc.add(new Field(fieldName, text, Field.Store.YES,   
  43.                     Field.Index.TOKENIZED,   
  44.                     Field.TermVector.WITH_POSITIONS_OFFSETS));   
  45.             iwriter.addDocument(doc);   
  46.             iwriter.close();   
  47.   
  48.             IndexSearcher isearcher = new IndexSearcher(directory);   
  49.                
  50.             QueryParser queryParse = new QueryParser(fieldName, analyzer);   
  51.             Query query = queryParse.parse("越狱");   
  52.             Hits hits = isearcher.search(query);   
  53.             for (int i = 0; i < hits.length(); i++) {   
  54.                 Document docTemp = hits.doc(i);   
  55.                 String value = docTemp.get(fieldName);   
  56.         //      对要高亮显示的字段格式化,这里只是加红色显示和加粗   
  57.                 SimpleHTMLFormatter sHtmlF = new SimpleHTMLFormatter("<b><font color='red'>""</font></b>");   
  58.                 Highlighter highlighter = new Highlighter(sHtmlF,new QueryScorer(query));   
  59.                 highlighter.setTextFragmenter(new SimpleFragmenter(10));   
  60.                    
  61.                 if (value != null) {   
  62.                     TokenStream tokenStream = analyzer.tokenStream(fieldName,new StringReader(value));   
  63.                     String str = highlighter.getBestFragment(tokenStream, value);   
  64.                        
  65.                     System.out.println(str);   
  66.                 }   
  67.            }   
  68.     
  69.             isearcher.close();   
  70.             directory.close();   
  71.         }   
  72.         catch (Exception e)   
  73.         {   
  74.             e.printStackTrace();   
  75.         }   
  76.     }   
  77.   
  78. }   

 

 

运行结果为:

《<b><font color='red'>越狱</font></b>3》播出时间

分享到:
评论

相关推荐

    SpringBoot+Lucene搜索结果高亮显示Demo

    基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上

    luceneDemo(完整代码)

    luceneDemo(完整代码) lucene入门 基础类的运用、高亮器的实现、相关度排序

    ssh集成Lucene4.7demo

    Struts2.3+spring4+hibernate4+Lucene4.7+IKAnalyzer,中文分词,高亮显示,附带MySQL8000条测试数据。仅供学习参考

    lucene 4.7.2 Demo

    lucene 4.7.2支持java 6 ,之后的版本需要java 7以上,创建、删除、修改索引,搜索支持通用对象(可以根据对象类型搜索),可以范围搜索、排序、高亮,希望有所帮助

    lucene5.5demo

    一个简单的lucene demo,使用Lucene5.5+springmvc+mysql开发,包括索引的增删改查,查询中可以高亮显示+分页+自定义排序,有兴趣的朋友可以看看

    Lucene Demo组件

    使用Lucene框架写的索引的增、删、改、查组件,支持高亮关键字

    自己研究的web版Lucene.net代码

    Lucene.net demo 搜索 带高亮显示 盘古分词 分析器 lucene框架 基本项目功能点实现 代码复用性强

    DotLucene演示源码

    DotLucene演示源码 DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该demo演示了Lucene的常用功能(智能分词、关键字高亮等)

    lucenenet2.3.1盘古分词示例

    盘古中文分词+lucene.net2.3.1的详细示例 lucene.net2.3.1+盘古分词 Demo

    DotLucene演示源码.rar

    该demo演示了Lucene的常用功能(智能分词、关键字高亮等) 在测试自定义添加数据后点击建立索引按钮才能生效(此功能由51aspx添加),原版只检索目录下的html文件,51Aspx改为了检索所有文件 1) Indexer文件夹:...

    盘古分词 说明书

    Demo.exe 分词演示程序 PanGu.HighLight.dll 高亮组件 PanGu4Lucene 这个是盘古分词针对Lucene.net 提供的接口 PanGu.Lucene.Analyzer.dll 盘古分词针对Lucene.net 的接口组件 PanGu.Lucene.ImportTool.exe 示例...

    C#开源项目盘古分词的使用手册

    高亮组件PanGu.HighLight.dll 调用方法 8 字典管理 8 Demo.exe 11 PanGu4Lucene 调用方法 12 创建索引 12 插入数据 12 对要搜索的词分词 13 搜索 13 PanGu4Lucene 示例 15 PanGu4Lucene 示例安装说明 15

    asp.netDotLucene演示

    也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字高亮等) 在测试自定义添加数据后点击建立...

    ShootSearch (基于dotlucene的c#开源搜索引擎)

    技术支持:support@shootsoft.net ... 平台:.Net1.1 C# + dotlucene 1.9.0.2 ShootSearch是一个c#编写的基于dotlucene的开源搜索引擎....测试DEMO: ...dotLucene下的高亮显示好像有问题,不是很好用

Global site tag (gtag.js) - Google Analytics