/**
*
* @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)】是一个展示如何在Java环境中使用Apache Lucene库进行全文搜索引擎构建的示例项目。Lucene是开源的全文检索引擎库,它提供了强大的文本搜索功能,而Paoding则是针对中文处理的插件,优化了...
文件名中的"lucene paoding paodi"标签,暗示了这是关于Lucene使用Paoding分词器进行中文索引的示例或者库文件。开发者可以解压这个文件,参考其中的代码示例,学习如何在自己的项目中集成并使用PaodingAnalysis。 ...
这个名为"Lucene-Demo.rar"的压缩包提供了一个基于Lucene的分词演示项目,可以帮助开发者快速理解和应用Lucene的分词功能。在这个压缩包中,有两个主要的文件:`lucene`目录和`Lucene-Demo`文件。 `lucene`目录很...
在"lucene_demo"这个压缩包中,很可能包含了一些示例代码或者项目,用于演示如何使用Lucene进行实际的文本搜索开发。这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,...
"luceneDemo1"和"lucene"可能是两个不同的文件或文件夹,它们可能包含了运行Lucene的示例代码或者已经构建好的索引。"luceneDemo1"可能是一个包含Lucene应用示例的Java项目,包含了必要的类和方法,展示了如何使用...
Lucene和Paoding是两个广泛使用的开源工具,它们专门用于实现高效、准确的中文分词。 Lucene是一个强大的全文检索库,由Apache软件基金会开发。它提供了索引和搜索文本的能力,使得开发者能够快速构建自己的搜索...
**标题:“简单的lucene demo”** Lucene是一个强大的全文搜索引擎库,由Apache软件基金会开发并维护,它在Java编程语言中实现,广泛应用于各种搜索应用的构建。这个“简单的lucene demo”旨在向我们展示如何利用...
《LuceneDemo(完整代码):入门到精通的探索》 Lucene,作为Apache软件基金会的一个开源项目,是Java环境中最流行的全文检索库。它提供了一个高性能、可扩展的信息检索服务,广泛应用于搜索引擎开发和大数据分析中...
**Lucene初探:一个初级的LuceneDemo** 在IT领域,搜索引擎技术是不可或缺的一部分,尤其是在大数据时代,高效的信息检索显得尤为重要。Apache Lucene就是这样一款强大的开源全文搜索引擎库,它为开发者提供了构建...
lucene-demo-6.6.0.jar
在"LuceneDemo"这个项目中,你可以期待看到一个简单的Java程序,它将演示上述过程,可能包括创建一个或多个包含文本数据的Document,使用默认的StandardAnalyzer建立索引,然后执行一个基本的文本查询,展示搜索结果...
**Lucene 3.3.0 学习Demo** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。在3.3.0版本中,Lucene提供了强大的文本搜索功能,包括分词、索引创建、查询解析和结果排序等。这个"Lucene3.3.0学习Demo...
在这个“ssh集成Lucene4.7demo”项目中,开发者将SSH框架与Lucene 4.7版本的全文搜索引擎进行了整合,同时还引入了IKAnalyzer作为中文分词器,以支持对中文文本的处理。这个示例项目不仅包含了基本的整合工作,还...
这个“Lucene入门demo”将帮助我们理解如何使用 Lucene 进行基本的索引和搜索操作。 **一、Lucene 的核心概念** 1. **索引(Indexing)**: 在 Lucene 中,索引是文档内容的预处理结果,类似于数据库中的索引。通过...
本篇文章将围绕“lucene3.5全文检索案例lucene+demo”,详细讲解Lucene 3.5的核心概念、关键功能以及如何通过实例进行操作。 一、Lucene 3.5核心概念 1. 文档(Document):Lucene中的最小处理单元,相当于数据库...
本篇文章将深入探讨Lucene的几个常见示例,包括`LuceneDemo`、`LuceneZJ`、`Lucene_HelloWorld`,帮助初学者快速理解Lucene的基本操作。 1. **Lucene_HelloWorld** 这个示例是入门Lucene的首选,它展示了如何创建...
"lucene示例 demo+jar包"中提到的 jar 包是 Lucene 库的运行时依赖,它们包含了 Lucene 的所有类和方法。开发人员需要这些 jar 包来编译和运行使用 Lucene 的程序。通常,开发者会将这些 jar 文件添加到项目的类路径...
**Lucene.Net 搜索Demo详解** Lucene.Net是一款开源全文搜索引擎库,它是Apache Lucene项目在.NET Framework上的实现。这个“lucene.net demo”旨在帮助开发者了解如何利用Lucene.Net来构建桌面搜索功能,让我们...
《Lucene 3.0 学习笔记(三)与Paoding整合》 在深入了解Lucene 3.0的过程中,我们经常会遇到如何将其与第三方工具进行整合的问题,以提升搜索性能和用户体验。这篇学习笔记主要关注的是将Lucene 3.0与Paoding搜索...
本实例将介绍如何结合Paoding和Lucene来实现一个简单的全文检索系统,这在处理中文数据时尤其有效。 首先,让我们了解一下Paoding。Paoding是一款优秀的中文分词库,它针对中文的特点进行了优化,能有效地进行词语...