import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.NumericField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;
/**
* 创建索引
*
* @author Oliver
*
*/
public class Index {
private static String indexPath = System.getProperty("user.dir") + "\\index";
private static String dataPath = System.getProperty("user.dir") + "\\data";
@Test
public void createIndex() throws IOException {
// 创建分词器
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
// 根据文件路径创建索引库
Directory dir = FSDirectory.open(new File(indexPath));
// 创建IndexWriter
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_34, analyzer);
IndexWriter writer = new IndexWriter(dir, conf);
// 数据文件
File[] dataFile = new File(dataPath).listFiles();
// 添加文件
for (File file : dataFile) {
writer.addDocument(getDocument(file));
}
// 关闭
writer.close();
}
/**
* 添加文件
*
* @param file
* @return
* @throws FileNotFoundException
*/
private Document getDocument(File file) throws FileNotFoundException {
Document doc = new Document();
//文件内容
doc.add(new Field("content", new FileReader(file)));
//文件名字
doc.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
//文件路径
doc.add(new Field("filepath", file.getAbsolutePath(), Field.Store.YES,
Field.Index.NOT_ANALYZED));
//文件大小
doc.add( new NumericField("size").setLongValue(file.length()));
return doc;
}
}
分享到:
相关推荐
3. **索引创建与更新**:阐述如何使用Lucene创建、删除和更新索引,包括如何添加、删除和修改文档,以及优化索引的过程。 4. **查询处理与搜索**:详细解析如何使用Lucene进行查询,包括布尔查询、短语查询、范围...
《Lucene实战(中文版第二版)》是针对搜索引擎开发领域的经典著作,它详细介绍了如何使用Apache Lucene这个强大的全文搜索引擎库。Lucene是Java语言实现的开源项目,被广泛应用于各种信息检索系统中,包括网站搜索...
《Lucene实战(第二版)》是一本深入探讨Apache Lucene全文搜索引擎库的权威书籍,主要面向对Java和搜索引擎技术感兴趣的开发者。这本书详尽地介绍了如何利用Lucene进行信息检索、文本分析和索引构建,同时也涵盖了...
《Lucene实战》第二版是一本深入探讨Apache Lucene搜索引擎库的权威指南。这本书主要针对开发者,特别是那些希望在自己的应用程序中集成全文搜索功能的人。Lucene是一个高性能、全文本检索库,它允许开发人员轻松地...
资源名称:Lucene实战视频教程资源目录:【】01_lucenc简介和创建索引初步【】02_lucene简介和搜索初步【】03_lucene索引_创建_域选项【】04_lucene索引_的删除和更新【】05_lucene索引_加权操作和Luke的简单演示...
《Lucene实战源码》是针对搜索引擎库Lucene的一份深度学习资料,它包含了Lucene的源代码,但不包括JAR包。由于完整的源代码文件体积较大,无法直接通过某些平台进行上传,用户需要单独从指定的博客或资源站点下载JAR...
IndexWriter在创建索引时会调用Analyzer来处理文档内容,并将处理后的词项写入索引。这个过程中涉及倒排索引的概念,倒排索引将每个词项与包含该词项的文档列表关联起来,极大地提高了搜索效率。在lia2e文件夹中,...
根据提供的信息,“Lucene实战中文版第2版.pdf”似乎是一本关于Apache Lucene的实践指南书籍。由于具体内容部分没有提供实际的章节或段落文本,我们只能基于标题、描述和标签来推断这本书可能涉及的关键知识点。下面...
《Lucene实战(第2版)》是一本深入讲解Lucene搜索引擎库的中文书籍,针对的是实际应用中的各种场景和问题。Lucene是Apache软件基金会的开源项目,它提供了高性能、全文索引和搜索功能,被广泛应用于各种信息检索系统...
1. 创建索引:首先,需要创建一个Analyzer,然后使用Analyzer对文档进行分析,得到一系列的术语。接着,将这些术语与文档的相关信息一起写入索引。 2. 添加文档:使用Document对象封装文档内容,然后将其添加到...
《Lucene实战源码》是一本深入探讨Apache Lucene搜索引擎库的书籍,其配套的光盘代码包含了书中各个章节的示例和实验项目。Lucene是Java开发的全文搜索引擎库,广泛应用于各种信息检索和文本分析场景。通过研究这...
《Lucene实战源码(Lucene in Action Source Code)part2》是针对知名搜索库Lucene的一份重要学习资源,其包含的是书籍《Lucene in Action》中的实践代码,主要聚焦于Lucene的深入理解和应用。这个压缩包的第二部分...
最后,导入和运行这部分源码可以帮助开发者实践Lucene的使用,了解如何创建索引、执行查询、处理结果,并且通过调试和修改源码,进一步深入学习Lucene的底层实现。 总的来说,《Lucene实战源码(Lucene in Action ...
1. **索引构建**:从各种数据源(如文件、数据库等)读取内容,创建索引结构。 2. **索引更新**:支持增量索引,仅对变动部分进行更新,保持索引实时性。 3. **查询解析**:将用户输入的查询语句转化为适合索引搜索...
同时,他会讲解如何使用LUCENE API进行索引的创建、更新和删除,以及如何处理多语言文本和特殊字符。此外,还会涉及高级主题,如分布式搜索、近实时搜索、搜索结果的相关性和排序。 书中还涵盖了实际项目开发中可能...
1. **创建索引**:首先,开发者需要创建一个`IndexWriter`实例,然后调用`addDocument()`方法添加文档到索引中。每个文档的字段会被分词器处理,并生成对应的术语及其位置信息。 2. **搜索索引**:使用`...
《Lucene实战CMS:构建高效搜索引擎系统》 在IT领域,搜索引擎是不可或缺的一部分,而Lucene作为Apache软件基金会的一个开放源代码项目,是Java平台上最流行的全文检索库。本实战项目将带你深入理解并运用Lucene,...
《Lucene实战(第2版)》是一本深入解析Apache Lucene搜索引擎库的专业书籍,针对中文版,将帮助读者全面理解和掌握如何利用Lucene进行文本检索和数据分析。Lucene是Java开发的一个高性能、全文检索库,它提供了强大的...
1. **Lucene基础知识**:介绍Lucene的基本概念,如文档、字段、术语、倒排索引和查询解析,以及如何创建一个基本的Lucene应用。 2. **索引构建**:涵盖如何将结构化和非结构化数据转化为可搜索的索引,包括分词器的...
### Lucene实战(第2版)关键知识点解析 #### 一、Lucene简介与应用价值 **Lucene**是一款高性能的全文搜索引擎库,由Doug Cutting创建,并贡献给了Apache基金会。它能够帮助开发者轻松地在应用程序中集成搜索功能,...