`

Lucene_demo08_Hightlighter高亮

阅读更多
Lucene_demo08_Hightlighter高亮



/*
 * 1、使关键字变色 <font color='red'>总冠军</font>
 * 2、控制摘要的大小
 */
public class HightlighterTest {
	@Test
	public void testSearchIndex() throws Exception {
		IndexSearcher indexSearcher = new IndexSearcher(LuceneUtils.directory);
		QueryParser queryParser = new MultiFieldQueryParser(Version.LUCENE_30, new String[] { "title", "content" }, LuceneUtils.analyzer);
		Query query = queryParser.parse("总冠军");
		TopDocs topDocs = indexSearcher.search(query, 25);
		int count = topDocs.totalHits;// 总的记录数
		ScoreDoc[] scoreDocs = topDocs.scoreDocs;
		List<Article> articleList = new ArrayList<Article>();

		// 设置高亮器
		Formatter formatter = new SimpleHTMLFormatter("<font color='red'>", "</font>");// 给关键词指定前缀和后缀
		Scorer scorer = new QueryScorer(query);// 指定关键词
		Highlighter highlighter = new Highlighter(formatter, scorer);
		Fragmenter fragmenter = new SimpleFragmenter(50);// 查询出来显示内容的长度
		highlighter.setTextFragmenter(fragmenter);

		for (int i = 0; i < scoreDocs.length; i++) {
			int index = scoreDocs[i].doc;
			Document document = indexSearcher.doc(index);
			// 第一个参数 找到关键词 第二个参数 对哪个字段的关键词进行高亮
			String titleText = highlighter.getBestFragment(LuceneUtils.analyzer, "title", document.get("title"));
			String contentText = highlighter.getBestFragment(LuceneUtils.analyzer, "content", document.get("content"));
			Article article = DocumentUtils.document2Article(document);
			if (titleText != null || !titleText.equals("")) {// 保证要搜索的字段中有关键词
				article.setTitle(titleText);
			}
			if (contentText != null || !contentText.equals("")) {
				article.setContent(contentText);
			}
			articleList.add(article);
		}

		// 输出查询结果
		for (Article article : articleList) {
			System.out.println(article.getId());
			System.out.println(article.getTitle());
			System.out.println(article.getContent());
		}
	}
}



分享到:
评论

相关推荐

    lucene_demo例子

    在"lucene_demo"这个压缩包中,很可能包含了一些示例代码或者项目,用于演示如何使用Lucene进行实际的文本搜索开发。这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,...

    vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb

    标题中的“vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb”表明这是一个关于使用VB.NET 2.0版本实现Lucene搜索引擎的测试项目。Lucene是一个高性能、全文本搜索库,广泛应用于Java开发,而这里则是将...

    java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web

    【标题】"java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web" 提供的信息表明这是一个使用Java和Lucene框架实现的搜索系统,特别是针对公交数据的搜索。Lucene是Apache软件基金会的一个开源全文检索库,...

    lucene_in_action中文版

    lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版

    lucene_cn.jar

    “META-INF”目录则包含了Lucene的相关元数据,如MANIFEST.MF文件,它记录了jar包的基本信息和依赖关系,这对于构建和运行环境的配置至关重要。在部署和运行Lucene_CN.jar时,这些元数据会帮助系统正确地加载和执行...

    ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索

    **Lucene搜索引擎简介** Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的开源搜索引擎框架。它为开发者提供了在应用程序中实现全文索引和搜索功能的基础工具。Lucene的...

    luceneDemo_pure1aa_DEMO_clucene_

    将提供的“luceneDemo”文件加入到项目中,这是DEMO的主要代码。这个DEMO将展示如何使用Clucene的基本操作,包括创建索引、搜索索引等关键步骤。 五、理解DEMO代码 DEMO代码通常包含以下几个部分: 1. **索引创建...

    Lucene资料大全(包括Lucene_in_Action书等)

    标题"Lucene资料大全(包括Lucene_in_Action书等)"表明这是一个包含全面Lucene学习资源的集合,其中最显著的是《Lucene_in_Action》这本书。这是一本广泛认可的关于Apache Lucene的权威指南,通常被简称为LIA,它深入...

    chinese_lucene.rar_Lucene C#_Lucene for .net_PanGu4Lucene_lucene

    《深入理解Lucene C#与.NET环境下的应用实践》 Lucene是一款强大的全文搜索引擎库,最初由Apache软件基金会开发,现已成为Apache Lucene项目的一部分。它提供了高效的索引和搜索功能,广泛应用于各类数据检索系统。...

    lucene_web项目应用实例

    同时,可以提供分页、高亮显示匹配关键词等功能,提升用户体验。 在“lucene_web”项目中,我们还能看到如何利用Lucene的Filter和Collector来实现特定的搜索需求,例如范围查询、模糊查询、短语查询等。同时,通过...

    lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce

    这个名为“lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce”的资源,包含了一份由Eddy精心制作的Lucene.NET视频教程,以及相关的学习材料,是深入理解和应用Lucene.NET的好帮手。 首先,视频...

    Lucene_in_ Action

    Lucene_in_Action english版

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

    lucene_jar包

    **Lucene jar包详解** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"lucene_jar包"包含了Lucene的核心组件,是开发者构建搜索功能的基础。在Java开发环境中,jar(Java Archive)包是将...

    JAVA_Lucene_in_Action教程完整版

    ### JAVA_Lucene_in_Action教程知识点概述 #### 一、Lucene简介与背景 - **Lucene的起源**:Lucene最初作为一个私有项目由Doug Cutting创建于1997年末,目的是为了学习Java并尝试创建搜索软件。由于缺乏销售经验,...

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

    在这个SpringBoot+Lucene的Demo中,我们将深入探讨如何在Spring Boot框架下集成Lucene,并实现搜索结果的高亮显示。 首先,让我们了解Spring Boot。Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化...

Global site tag (gtag.js) - Google Analytics