lucene自带的demo需要在命令行下运行,对于初次学习的人来说极为不变。对其demo进行了修改并附加中文注释,希望对喜爱lucene的人有所帮助,lucene的版本是最新的2.4.
下面是修改后的IndexFiles,可以直接在IDE总运行。代码如下所示:
package com.exceljava.lucene;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.demo.FileDocument;
import org.apache.lucene.index.IndexWriter;
/**
* @author xjj email: exceljava@163.com description:建立索引
* @date Jan 5, 2009
*/
public class IndexFiles {
private IndexFiles() {
}
static final File INDEX_DIR = new File("exceljava");
// 指定要索引的目录
static final String DIR_PATH = "d:\\days";
public static void main(String[] args) {
indexWriter(INDEX_DIR,DIR_PATH);
}
/**
* function:索引创建
* @param file
* @param dirPath
* @date Jan 5, 2009
* @time 5:06:17 PM
*/
public static void indexWriter(File file,String dirPath){
// if (INDEX_DIR.exists()) {
// System.out.println(”索引目录’” + INDEX_DIR + “‘已经存在,请先删除该索引”);
// System.exit(1);
// }
final File docDir = new File(dirPath);
if (!docDir.exists() || !docDir.canRead()) {
System.out.println(”文档目录 ‘” + docDir.getAbsolutePath()
+ “‘不存在或不能读写”);
System.exit(1);
}
long start =System.currentTimeMillis();
try {
IndexWriter writer = new IndexWriter(file,
new StandardAnalyzer(), //
true,//这里的true表示重新建立索引,如果存在也将覆盖。false则表示如果存在索引则在现有基础上进行拓展
IndexWriter.MaxFieldLength.LIMITED);
System.out.println(”索引’” + INDEX_DIR + “‘…”);
indexDocs(writer, docDir);
//合并小索引文件并进行优化
writer.optimize();
writer.close();
long end =System.currentTimeMillis();
System.out.println(”共耗时:” + (end - start)+ “毫秒”);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* function:检索目录,并调用创建索引函数进行索引创建,支持对目录内嵌目录进行检索
* @param writer
* @param file
* @throws IOException
* @date Jan 5, 2009
* @time 4:49:45 PM
*/
static void indexDocs(IndexWriter writer, File file) throws IOException {
if (file.canRead()) {
if (file.isDirectory()) {
String[] files = file.list();
if (files != null) {
//检索内嵌目录
for (int i = 0; i < files.length; i++) {
indexDocs(writer, new File(file, files[i]));
//new File(file, files[i])通过父路径file和子路径files[i]创建文件
}
}
} else {
System.out.println(”添加索引文件: ” + file);
try {
//向索引中添加构造好的文档
writer.addDocument(FileDocument.Document(file));
} catch (FileNotFoundException fe) {
fe.printStackTrace();
}
}
}
}
}
分享到:
相关推荐
这个“Lucene入门demo”将帮助我们理解如何使用 Lucene 进行基本的索引和搜索操作。 **一、Lucene 的核心概念** 1. **索引(Indexing)**: 在 Lucene 中,索引是文档内容的预处理结果,类似于数据库中的索引。通过...
《Lucene实战(第2版) PDF高清中文版.pdf》这本书是关于Apache Lucene的一本经典教程,适合初学者入门。Lucene是一个全文搜索引擎库,它提供了强大的文本搜索功能,被广泛应用于各种信息检索系统中。这本书详细介绍了...
在这个"lucene3.0.0 入门DEMO"中,我们将探讨如何使用 Lucene 3.0.0 版本进行基本操作。 首先,让我们了解Lucene的核心概念: 1. **索引**:在Lucene中,索引是文档内容的预处理结果,类似于数据库中的索引,用于...
里面编写了法创建,搜索的基本方法 LuceneDemo 单个文件索引,创建查找 CopyFile 为多文件复制多些文件做准备 CreateIndexe 多文件创建索引;Searcher多文件搜索对应CreateIndexe
《LuceneDemo(完整代码):入门到精通的探索》 Lucene,作为Apache软件基金会的一个开源项目,是Java环境中最流行的全文检索库。它提供了一个高性能、可扩展的信息检索服务,广泛应用于搜索引擎开发和大数据分析中...
这个示例是入门Lucene的首选,它展示了如何创建一个新的索引并执行基本的搜索。首先,你需要定义一个`Document`对象,包含要索引的字段,如标题、内容等。然后使用`Directory`(如`FSDirectory`)打开存储索引的...
总结了一些实用的demo 包括: 1.建立索引 2.通过IKAnalyzer搜索中文关键词 3.复杂的多字段搜索 4.多线程并发搜索,通过contiperf测试,详见:contiperf_百度百科 5.分页搜索 注意:lucene4.10.0需要jdk1.7以上...
《Lucene 4.4 实战教程:从基础到进阶》 Lucene是一个高性能、全文本搜索引擎库,由Apache软件基金会开发。...这个Demo案例旨在引导你入门,希望你在学习Lucene的旅程中找到乐趣,不断提高你的搜索引擎开发能力。
《Lucene入门实战:构建基础检索功能》 在信息技术领域,全文搜索引擎的开发与应用是不可或缺的一部分,而Apache Lucene正是这样一个强大的全文检索库。本文将通过“Lucenedemo”项目,带你走进Lucene的世界,了解...
**入门级 Lucene Demo** "Lucene Demo" 应该是一个简单的示例项目,旨在帮助初学者快速了解如何使用 Lucene。这个 Demo 可能包括以下步骤: 1. **创建索引**:首先,程序会读取一组文档(可能是文本文件或数据库...
**Lucene入门示例** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。它提供了文本分析、索引创建、文档检索等核心功能,广泛应用于各种搜索应用的开发。本文将从一个简单的Lucene入门示例出发,...
doc.add(new Field("title", "Lucene入门", Field.Store.YES, Field.Index.ANALYZED)); doc.add(new Field("content", "这是Lucene 3.0的实例", Field.Store.YES, Field.Index.ANALYZED)); ``` 3. **查询...
这个入门实例将引导我们了解如何使用Lucene 3.0版本进行基本的索引和搜索操作。以下是对Lucene 3.0关键知识点的详细讲解: 1. **Lucene的架构**: Lucene的核心组件包括文档(Document)、字段(Field)、索引...
### Lucene快速入门知识点 #### 1. Lucene简介 ##### 1.1 Lucene的历史 - **创始人**: Lucene由一位资深的全文索引/检索专家开发。 - **开源历程**: 最初发布在其个人主页上,2001年10月捐赠给Apache基金会,成为...
Lucene入门文档,包含索引的创建、查询、更新以及删除demo,各个常用类的详解
`LuceneDemoSrc`可能是包含一个Lucene入门示例项目的压缩文件,它可能包括以下部分: 1. **源码**:展示了如何创建和使用Lucene索引,以及如何执行搜索。 2. **配置文件**:可能包含Analyzer的配置,用于定制化分词...