Lucene_demo09_txt文件索引
/**
* txt文件索引
*/
public class IndexFile {
private Directory directory;
private String indexPath = "D://lucene/index"; // 建立索引文件的目录
private String dirPath = "D://lucene/data"; // txt资源目录
private IndexWriter indexWriter;
/*
* 获得所有txt文件
*/
public List<File> getFileList(String dirPath) {
File[] files = new File(dirPath).listFiles();
List<File> fileList = new ArrayList<File>();
for (File file : files) {
if (isTxtFile(file.getName())) {
fileList.add(file);
}
}
return fileList;
}
/*
* 判断是否是txt文件
*/
public boolean isTxtFile(String fileName) {
if (fileName.lastIndexOf(".txt") > 0) {
return true;
}
return false;
}
/*
* 将文件转换成Document对象
*/
public Document fileToDocument(File file) throws Exception {
Document document = new Document();
document.add(new Field("filename", file.getName(), Store.YES, Index.ANALYZED));
document.add(new Field("content", getFileContent(file), Store.YES, Index.ANALYZED));
document.add(new Field("size", String.valueOf(file.getTotalSpace()), Store.YES, Index.ANALYZED));
return document;
}
/*
* 获得indexwriter对象
*/
public IndexWriter getIndexWriter(Directory dir) throws Exception {
IndexWriter indexWriter = new IndexWriter(dir, LuceneUtils.analyzer, MaxFieldLength.LIMITED);
return indexWriter;
}
/*
* 关闭indexwriter对象
*/
public void closeWriter() throws Exception {
if (indexWriter != null) {
indexWriter.close();
}
}
/*
* 读取文件内容
*/
public String getFileContent(File file) throws Exception {
Reader reader = new InputStreamReader(new FileInputStream(file), "UTF-8");
BufferedReader br = new BufferedReader(reader);
String result = "";
while (br.readLine() != null) {
result = result + "\n" + br.readLine();
}
br.close();
reader.close();
return result;
}
/**
* 启动初始化
*/
@Before
public void init() {
try {
directory = FSDirectory.open(new File(indexPath));
indexWriter = getIndexWriter(directory);
}
catch (Exception e) {
System.out.println("索引打开异常!");
}
}
/**
* 创建索引 Main方法
*/
@Test
public void createIndex() throws Exception {
List<File> fileList = getFileList(dirPath);
Document document = null;
for (File file : fileList) {
document = fileToDocument(file);
indexWriter.addDocument(document);
System.out.println("filename:" + document.get("filename"));
System.err.println("content:" + document.get("content"));
indexWriter.commit();
}
closeWriter();
}
}
分享到:
相关推荐
在"lucene_demo"这个压缩包中,很可能包含了一些示例代码或者项目,用于演示如何使用Lucene进行实际的文本搜索开发。这些示例通常会涵盖以下几个关键知识点: 1. **安装与配置**:Lucene的下载、构建环境的搭建,...
将提供的“luceneDemo”文件加入到项目中,这是DEMO的主要代码。这个DEMO将展示如何使用Clucene的基本操作,包括创建索引、搜索索引等关键步骤。 五、理解DEMO代码 DEMO代码通常包含以下几个部分: 1. **索引创建...
在运行这个Demo时,注意描述中提到的"存储地址",这通常指的是Lucene创建的索引文件的保存位置。开发者需要根据自己的环境修改这个路径,确保Lucene能够正确读写索引。在索引文本时,开发者会调用Lucene提供的API将...
"luceneDemo1"和"lucene"可能是两个不同的文件或文件夹,它们可能包含了运行Lucene的示例代码或者已经构建好的索引。"luceneDemo1"可能是一个包含Lucene应用示例的Java项目,包含了必要的类和方法,展示了如何使用...
总结,Lucene5 全文搜索 demo 展示了如何利用 Lucene 的核心组件创建和搜索索引。从索引的构建到查询的执行,每个步骤都涉及到对 Lucene API 的深入理解。通过学习这个示例,开发者可以进一步了解 Lucene 的工作原理...
本篇文章将深入探讨Lucene的几个常见示例,包括`LuceneDemo`、`LuceneZJ`、`Lucene_HelloWorld`,帮助初学者快速理解Lucene的基本操作。 1. **Lucene_HelloWorld** 这个示例是入门Lucene的首选,它展示了如何创建...
《Lucene 4.7.2 Demo:Java全文搜索引擎的核心技术探索》 Lucene,作为Apache软件基金会的一个开源项目,是Java平台上的一个全文搜索引擎库。它的主要功能是提供高效、可扩展的文本检索和分析能力。在4.7.2这个版本...
4. **Lucene的简单demo**:这个项目包含两个关键文件——`TestLuceneSearch.java`和`TestLuceneIndex.java`,分别代表了Lucene的索引创建和搜索功能的示例代码。通过这两个文件,我们可以了解如何初始化索引器、添加...
**Lucene 3.3.0 学习Demo** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发。在3.3.0版本中,Lucene提供了强大的文本搜索功能,包括分词、索引创建、查询解析和结果排序等。这个"Lucene3.3.0学习Demo...
在"LuceneDemo"这个项目中,你可以期待看到一个简单的Java程序,它将演示上述过程,可能包括创建一个或多个包含文本数据的Document,使用默认的StandardAnalyzer建立索引,然后执行一个基本的文本查询,展示搜索结果...
通过学习和实践这个LuceneDemo,你可以对Lucene有一个初步的认识,了解如何创建、索引和搜索文档。随着深入学习,你会发现Lucene的强大之处在于其高度定制化的能力,可以满足各种复杂的搜索需求。在实际项目中,结合...
在这个类中,你需要定义一个方法来读取数据源(如文件或数据库),并使用Lucene的`Analyzer`分析文本内容,将其拆分为单词。 例如,你可以使用`StandardAnalyzer`,它会处理标点符号和大小写,将文本标准化。接着,...
**Lucene 概述** Lucene 是一个高性能、全文本搜索库...实际的 "luceneDemo" 可能包含更丰富的功能,例如支持多字段查询、高亮显示搜索结果、分页显示等。学习和理解 Lucene,可以帮助开发者构建强大的全文检索系统。
在"luceneDemo4.0"中,你将会看到以上概念的具体应用,包括创建索引、执行查询、高亮展示结果以及调整排序逻辑的示例代码。通过实践这个项目,你不仅可以了解Lucene的基本操作,还能学习到如何在实际项目中优化搜索...
**Lucene.Net 搜索Demo详解** Lucene.Net是一款开源全文搜索引擎库,它是Apache Lucene项目在.NET Framework上的实现。这个“lucene.net demo”旨在帮助开发者了解如何利用Lucene.Net来构建桌面搜索功能,让我们...
**Lucene.NET全文索引搜索Demo项目** Lucene.NET是一个基于Apache Lucene的开源全文搜索引擎库,它为.NET Framework提供高性能、可扩展的信息检索服务。这个"Lucene.NET全文索引搜索Demo项目"是一个实际应用示例,...
1. **创建索引(Creating an Index)**: 首先,我们需要创建一个 Directory 对象,它是 Lucene 存储索引的位置,可以是文件系统、内存或者分布式存储。然后,使用 IndexWriter 创建索引,将文档添加到索引中。 2. *...
通过分析【压缩包子文件的文件名称列表】中的"LuceneTest",我们可以推测这可能包含了测试类或者测试用例,用于验证Lucene和Paoding的整合效果,包括创建索引、执行搜索、性能测试等功能的实现代码。 综上所述,...
1. **索引(Indexing)**: Lucene 首先需要对数据进行索引,这个过程会将文本数据转换为倒排索引结构。倒排索引允许快速查找包含特定单词或短语的文档。 2. **文档(Documents)**: 在 Lucene 中,文档是搜索的基本...
**Lucene for Java 简单DEMO** Lucene 是一个全文搜索引擎库,由Apache软件基金会开发并维护,它提供了一个高效、可扩展的搜索框架,使得开发者可以轻易地在自己的应用程序中集成全文检索功能。Java是Lucene的主要...