测试高亮
import java.io.File; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.TopDocs; import org.apache.lucene.search.highlight.Highlighter; import org.apache.lucene.search.highlight.QueryScorer; import org.apache.lucene.search.highlight.SimpleHTMLFormatter; import org.apache.lucene.search.highlight.SimpleSpanFragmenter; import org.apache.lucene.search.highlight.TextFragment; import org.apache.lucene.search.highlight.TokenSources; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; import org.junit.Test; /** * 高亮测试 * * @author Administrator * */ public class HighLightTest { String indexPath = "F:\\eclipse\\LuceneTest\\luceneIndex"; // 分析器 Analyzer analyzer = new SmartChineseAnalyzer(Version.LUCENE_4_9); @Test public void test() throws Exception { String queryString = "房间"; String[] fields = { "name", "content" }; QueryParser parser = new MultiFieldQueryParser(Version.LUCENE_4_9, fields, analyzer); Query query = parser.parse(queryString); IndexReader reader = DirectoryReader.open(FSDirectory.open(new File(indexPath))); IndexSearcher indexSearcher = new IndexSearcher(reader); TopDocs topDocs = indexSearcher.search(query, 100); //当有匹配的文档时才能用高亮 if (topDocs.totalHits > 0) { // 默认为<B></B>高亮 // SimpleHTMLFormatter htmlFormatter = new SimpleHTMLFormatter(); // 自定义高亮 SimpleHTMLFormatter htmlFormatter = new SimpleHTMLFormatter("<strong>", "</strong>"); Highlighter highlighter = new Highlighter(htmlFormatter, new QueryScorer(query)); for (int i = 0; i < 10; i++) { int id = topDocs.scoreDocs[i].doc; Document doc = indexSearcher.doc(id); String text = doc.get("content"); TokenStream tokenStream = TokenSources.getAnyTokenStream(indexSearcher.getIndexReader(), id, "content", analyzer); TextFragment[] frag = highlighter.getBestTextFragments(tokenStream, text, false, 1);// highlighter.getBestFragments(tokenStream, // text, // 3, // "..."); for (int j = 0; j < frag.length; j++) { if ((frag[j] != null) && (frag[j].getScore() > 0)) { System.out.println((frag[j].toString())); } } // Term vector text = doc.get("name"); tokenStream = TokenSources.getAnyTokenStream(indexSearcher.getIndexReader(), topDocs.scoreDocs[i].doc, "name", analyzer); frag = highlighter.getBestTextFragments(tokenStream, text, false, 10); for (int j = 0; j < frag.length; j++) { if ((frag[j] != null) && (frag[j].getScore() > 0)) { System.out.println((frag[j].toString())); } } System.out.println("-------------"); } } } }
相关推荐
基于ICTCLAS中科院分词器实现Lucene4.9版本的中文分词功能,新增中英文停用词库,直接导入即可使用。
lucene4.9全包
最全、最新的lucene技术,包含所有的代码以及文档等内容,是学习lucene最全的文档。
NULL 博文链接:https://w62268458.iteye.com/blog/2180659
利用IKAnalyzer结合LUCENE.4.9进行中文分词的高亮显示。
免费Lucene4.9JAR文件,本来想全部上传上来的,可是太大了,所以就只传了个主要的CORE,如果谁需要可以从官网下载,URL地址:http://mirrors.cnnic.cn/apache/lucene/java/4.9.0/
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
Lucene之删除索引 Lucene之删除索引 Lucene之删除索引 http://blog.csdn.net/nupt123456789/article/details/10666105
Lucene3.0之查询处理(1):原理和查询类型 各种Query对象详解
NULL 博文链接:https://iamyida.iteye.com/blog/2203575
lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....
赠送jar包:lucene-highlighter-6.6.0.jar; 赠送原API文档:lucene-highlighter-6.6.0-javadoc.jar; 赠送源代码:lucene-highlighter-6.6.0-sources.jar; 赠送Maven依赖信息文件:lucene-highlighter-6.6.0.pom;...
此博文是对近期做lucene索引的总结, (lucene,solr,netty,hadoop),如蒙加入,不胜感激,大家共同探讨,本人争取每日一博,希望大家关注呦
lucene3.0 lucene3.0 lucene3.0 lucene3.0 lucene3.0
lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习lucene学习...
Lucene3.0特性Lucene3.0特性
一步一步跟我学习lucene是对近期做lucene索引的总结,
赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...
lucene学习教程lucene讲义 叫你用lucene算法
Lucene学习总结之一:全文检索的基本原理 Lucene学习总结之二:Lucene的总体架构 Lucene学习总结之三:Lucene的索引文件格式(1) Lucene学习总结之三:Lucene的索引文件格式(2) Lucene学习总结之三:Lucene的...