`
q_wong
  • 浏览: 108472 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Lucene Paoding Demo

阅读更多

/**
 * 
 * @author Q.Wong [2010-12-17]
 *
 */
public class TestInvoker {

	private Logger logger = LogManager.getLogger(TestInvoker.class);

	/**
	 * 索引保存在磁盘目录
	 */
	@Test
	public void testFSDirectory() {

		String indexDir = "d:\\temp\\index";
		String sourceDir = "d:\\temp\\TestLucene";
		String field = "contents";
		String keyWord = "河蟹";
		Analyzer analyzer = new PaodingAnalyzer();

		try {
			/** Index **/
			IndexWriter writer = IndexManager.getFSDirectoryIndexWriter(
					indexDir, analyzer);
			long l1 = System.currentTimeMillis();
			IndexManager.indexDocs(new File(sourceDir), writer, true);
			long l2 = System.currentTimeMillis();
			logger.info("Indexed " + writer.numDocs() + " files in ["
					+ (l2 - l1) + "] milliseconds.");
			writer.optimize();
			writer.close();

			/** Query **/
			IndexReader reader = IndexManager
					.getFSDirectoryIndexReader(indexDir);
			Searcher searcher = new IndexSearcher(reader);
			long l3 = System.currentTimeMillis();
			TopDocs resultDocs = QueryManager.doQuery(analyzer, searcher, field, keyWord, 10);
			long l4 = System.currentTimeMillis();
			logger.info("Found " + resultDocs.totalHits
					+ " document(s) matched query '" + keyWord + "' in ["
					+ (l4 - l3) + "] milliseconds.");
			searcher.close();
			reader.close();
			
			QueryManager.resolvedResults(resultDocs, searcher);
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 索引保存在内存
	 * 查询并高亮关键字
	 */
	@Test
	public void testRAMDirectory() {
		String sourceDir = "d:\\temp\\TestLucene\\text.txt";
		Directory ramDir = new RAMDirectory();
		Analyzer analyzer = new PaodingAnalyzer();
		try {
			/** Index **/
			IndexWriter writer = IndexManager.getRamDirIndexWriter(ramDir,
					analyzer);
			long l1 = System.currentTimeMillis();
			IndexManager.indexDocs(new File(sourceDir), writer, true);
			long l2 = System.currentTimeMillis();
			logger.info("Indexed " + writer.numDocs() + " files in ["
					+ (l2 - l1) + "] milliseconds.");
			writer.optimize();
			writer.close();

			/** Query **/
			IndexReader reader = IndexManager.getRamDirIndexReader(ramDir);
			QueryManager.doQuery(analyzer, reader, "contents", "河蟹", 10);
			reader.close();
		} catch (CorruptIndexException e) {
			e.printStackTrace();
		} catch (LockObtainFailedException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ParseException e) {
			e.printStackTrace();
		} catch (InvalidTokenOffsetsException e) {
			e.printStackTrace();
		}
	}
 
分享到:
评论

相关推荐

    lucene Demo(paoding)

    【Lucene Demo (Paoding)】是一个展示如何在Java环境中使用Apache Lucene库进行全文搜索引擎构建的示例项目。Lucene是开源的全文检索引擎库,它提供了强大的文本搜索功能,而Paoding则是针对中文处理的插件,优化了...

    paoding_analysis.rar_PaodingAnalysis_lucene paoding_paodi

    文件名中的"lucene paoding paodi"标签,暗示了这是关于Lucene使用Paoding分词器进行中文索引的示例或者库文件。开发者可以解压这个文件,参考其中的代码示例,学习如何在自己的项目中集成并使用PaodingAnalysis。 ...

    Lucene-Demo.rar Lucene分词的demo

    这个名为"Lucene-Demo.rar"的压缩包提供了一个基于Lucene的分词演示项目,可以帮助开发者快速理解和应用Lucene的分词功能。在这个压缩包中,有两个主要的文件:`lucene`目录和`Lucene-Demo`文件。 `lucene`目录很...

    lucene_demo例子

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

    Lucene简单Demo(附带Jar)

    "luceneDemo1"和"lucene"可能是两个不同的文件或文件夹,它们可能包含了运行Lucene的示例代码或者已经构建好的索引。"luceneDemo1"可能是一个包含Lucene应用示例的Java项目,包含了必要的类和方法,展示了如何使用...

    中文搜索分词lucene包+paoding包

    Lucene和Paoding是两个广泛使用的开源工具,它们专门用于实现高效、准确的中文分词。 Lucene是一个强大的全文检索库,由Apache软件基金会开发。它提供了索引和搜索文本的能力,使得开发者能够快速构建自己的搜索...

    简单的lucene demo

    **标题:“简单的lucene demo”** Lucene是一个强大的全文搜索引擎库,由Apache软件基金会开发并维护,它在Java编程语言中实现,广泛应用于各种搜索应用的构建。这个“简单的lucene demo”旨在向我们展示如何利用...

    luceneDemo(完整代码)

    《LuceneDemo(完整代码):入门到精通的探索》 Lucene,作为Apache软件基金会的一个开源项目,是Java环境中最流行的全文检索库。它提供了一个高性能、可扩展的信息检索服务,广泛应用于搜索引擎开发和大数据分析中...

    Lucene初探,一个初级的LuceneDemo

    **Lucene初探:一个初级的LuceneDemo** 在IT领域,搜索引擎技术是不可或缺的一部分,尤其是在大数据时代,高效的信息检索显得尤为重要。Apache Lucene就是这样一款强大的开源全文搜索引擎库,它为开发者提供了构建...

    lucene-demo-6.6.0.jar

    lucene-demo-6.6.0.jar

    lucene简单demo

    在"LuceneDemo"这个项目中,你可以期待看到一个简单的Java程序,它将演示上述过程,可能包括创建一个或多个包含文本数据的Document,使用默认的StandardAnalyzer建立索引,然后执行一个基本的文本查询,展示搜索结果...

    Lucene3.3.0学习Demo

    **Lucene 3.3.0 学习Demo** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。在3.3.0版本中,Lucene提供了强大的文本搜索功能,包括分词、索引创建、查询解析和结果排序等。这个"Lucene3.3.0学习Demo...

    ssh集成Lucene4.7demo

    在这个“ssh集成Lucene4.7demo”项目中,开发者将SSH框架与Lucene 4.7版本的全文搜索引擎进行了整合,同时还引入了IKAnalyzer作为中文分词器,以支持对中文文本的处理。这个示例项目不仅包含了基本的整合工作,还...

    Lucene入门demo

    这个“Lucene入门demo”将帮助我们理解如何使用 Lucene 进行基本的索引和搜索操作。 **一、Lucene 的核心概念** 1. **索引(Indexing)**: 在 Lucene 中,索引是文档内容的预处理结果,类似于数据库中的索引。通过...

    lucene3.5全文检索案例lucene+demo

    本篇文章将围绕“lucene3.5全文检索案例lucene+demo”,详细讲解Lucene 3.5的核心概念、关键功能以及如何通过实例进行操作。 一、Lucene 3.5核心概念 1. 文档(Document):Lucene中的最小处理单元,相当于数据库...

    Lucene常用的Demo

    本篇文章将深入探讨Lucene的几个常见示例,包括`LuceneDemo`、`LuceneZJ`、`Lucene_HelloWorld`,帮助初学者快速理解Lucene的基本操作。 1. **Lucene_HelloWorld** 这个示例是入门Lucene的首选,它展示了如何创建...

    lucene示例 demo+jar包

    "lucene示例 demo+jar包"中提到的 jar 包是 Lucene 库的运行时依赖,它们包含了 Lucene 的所有类和方法。开发人员需要这些 jar 包来编译和运行使用 Lucene 的程序。通常,开发者会将这些 jar 文件添加到项目的类路径...

    lucene.net demo

    **Lucene.Net 搜索Demo详解** Lucene.Net是一款开源全文搜索引擎库,它是Apache Lucene项目在.NET Framework上的实现。这个“lucene.net demo”旨在帮助开发者了解如何利用Lucene.Net来构建桌面搜索功能,让我们...

    lucene3.0学习笔记(三)与paoding整合

    《Lucene 3.0 学习笔记(三)与Paoding整合》 在深入了解Lucene 3.0的过程中,我们经常会遇到如何将其与第三方工具进行整合的问题,以提升搜索性能和用户体验。这篇学习笔记主要关注的是将Lucene 3.0与Paoding搜索...

    paoding+lucene实现全文检索功能简单实例

    本实例将介绍如何结合Paoding和Lucene来实现一个简单的全文检索系统,这在处理中文数据时尤其有效。 首先,让我们了解一下Paoding。Paoding是一款优秀的中文分词库,它针对中文的特点进行了优化,能有效地进行词语...

Global site tag (gtag.js) - Google Analytics