java 代码
- package com.feedsky.lucene;
-
- import java.io.StringReader;
-
- import org.apache.lucene.analysis.Analyzer;
- import org.apache.lucene.analysis.TokenStream;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.document.Field;
- import org.apache.lucene.index.IndexWriter;
- import org.apache.lucene.queryParser.QueryParser;
- import org.apache.lucene.search.Hits;
- import org.apache.lucene.search.IndexSearcher;
- import org.apache.lucene.search.Query;
- import org.apache.lucene.search.highlight.Highlighter;
- import org.apache.lucene.search.highlight.QueryScorer;
- import org.apache.lucene.search.highlight.SimpleFragmenter;
- import org.apache.lucene.search.highlight.SimpleHTMLFormatter;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.RAMDirectory;
-
-
-
- public class HighLighterTest
- {
-
- public static void main(String[] args)
- {
- String fieldName = "text";
- String text = "《越狱3》播出时间再次延期 急煞中国“狱友” 巨型变形金刚惊现北京 《龙珠Z》绝招威力排行 《不能说的秘密》清纯版 迅雷宽频合作发行 《越狱动画版》";
-
-
- Analyzer analyzer = new CnAnalyzer();
-
- Directory directory = new RAMDirectory();
-
- try
- {
-
- IndexWriter iwriter = new IndexWriter(directory, analyzer, true);
- iwriter.setMaxFieldLength(25000);
- Document doc = new Document();
- doc.add(new Field(fieldName, text, Field.Store.YES,
- Field.Index.TOKENIZED,
- Field.TermVector.WITH_POSITIONS_OFFSETS));
- iwriter.addDocument(doc);
- iwriter.close();
-
- IndexSearcher isearcher = new IndexSearcher(directory);
-
- QueryParser queryParse = new QueryParser(fieldName, analyzer);
- Query query = queryParse.parse("越狱");
- Hits hits = isearcher.search(query);
- for (int i = 0; i < hits.length(); i++) {
- Document docTemp = hits.doc(i);
- String value = docTemp.get(fieldName);
-
- SimpleHTMLFormatter sHtmlF = new SimpleHTMLFormatter("<b><font color='red'>", "</font></b>");
- Highlighter highlighter = new Highlighter(sHtmlF,new QueryScorer(query));
- highlighter.setTextFragmenter(new SimpleFragmenter(10));
-
- if (value != null) {
- TokenStream tokenStream = analyzer.tokenStream(fieldName,new StringReader(value));
- String str = highlighter.getBestFragment(tokenStream, value);
-
- System.out.println(str);
- }
- }
-
- isearcher.close();
- directory.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
-
- }
运行结果为:
《<b><font color='red'>越狱</font></b>3》播出时间
分享到:
相关推荐
基于SpringBoot编写的一个Lucene测试Demo把匹配到的结果高亮摘要显示在前端jsp上
luceneDemo(完整代码) lucene入门 基础类的运用、高亮器的实现、相关度排序
Struts2.3+spring4+hibernate4+Lucene4.7+IKAnalyzer,中文分词,高亮显示,附带MySQL8000条测试数据。仅供学习参考
lucene 4.7.2支持java 6 ,之后的版本需要java 7以上,创建、删除、修改索引,搜索支持通用对象(可以根据对象类型搜索),可以范围搜索、排序、高亮,希望有所帮助
一个简单的lucene demo,使用Lucene5.5+springmvc+mysql开发,包括索引的增删改查,查询中可以高亮显示+分页+自定义排序,有兴趣的朋友可以看看
使用Lucene框架写的索引的增、删、改、查组件,支持高亮关键字
Lucene.net demo 搜索 带高亮显示 盘古分词 分析器 lucene框架 基本项目功能点实现 代码复用性强
DotLucene演示源码 DotLucene实际是Lucene的Asp.net版本,也称为lucene.net 该demo演示了Lucene的常用功能(智能分词、关键字高亮等)
盘古中文分词+lucene.net2.3.1的详细示例 lucene.net2.3.1+盘古分词 Demo
该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 示例...
高亮组件PanGu.HighLight.dll 调用方法 8 字典管理 8 Demo.exe 11 PanGu4Lucene 调用方法 12 创建索引 12 插入数据 12 对要搜索的词分词 13 搜索 13 PanGu4Lucene 示例 15 PanGu4Lucene 示例安装说明 15
也称为lucene.net 该项目的原型为DotLuceneAPISearchDemo-1.1,后经51aspx升级为Asp.net2.0版本并改为WebApplication类型 该demo演示了Lucene的常用功能(智能分词、关键字高亮等) 在测试自定义添加数据后点击建立...
技术支持:support@shootsoft.net ... 平台:.Net1.1 C# + dotlucene 1.9.0.2 ShootSearch是一个c#编写的基于dotlucene的开源搜索引擎....测试DEMO: ...dotLucene下的高亮显示好像有问题,不是很好用