`
ol_beta
  • 浏览: 289354 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Lucene 实战:快速开始 创建索引

阅读更多
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;
	}
}
 
分享到:
评论

相关推荐

    解密搜索引擎技术实战:Lucene in java(第2版)源码 dvd ppt

    3. **索引创建与更新**:阐述如何使用Lucene创建、删除和更新索引,包括如何添加、删除和修改文档,以及优化索引的过程。 4. **查询处理与搜索**:详细解析如何使用Lucene进行查询,包括布尔查询、短语查询、范围...

    Lucene实战(中文版第二版)对应Lucene版本

    《Lucene实战(中文版第二版)》是针对搜索引擎开发领域的经典著作,它详细介绍了如何使用Apache Lucene这个强大的全文搜索引擎库。Lucene是Java语言实现的开源项目,被广泛应用于各种信息检索系统中,包括网站搜索...

    Lucene实战(第二版)

    《Lucene实战(第二版)》是一本深入探讨Apache Lucene全文搜索引擎库的权威书籍,主要面向对Java和搜索引擎技术感兴趣的开发者。这本书详尽地介绍了如何利用Lucene进行信息检索、文本分析和索引构建,同时也涵盖了...

    Lucene实战

    《Lucene实战》第二版是一本深入探讨Apache Lucene搜索引擎库的权威指南。这本书主要针对开发者,特别是那些希望在自己的应用程序中集成全文搜索功能的人。Lucene是一个高性能、全文本检索库,它允许开发人员轻松地...

    Lucene实战视频教程

    资源名称:Lucene实战视频教程资源目录:【】01_lucenc简介和创建索引初步【】02_lucene简介和搜索初步【】03_lucene索引_创建_域选项【】04_lucene索引_的删除和更新【】05_lucene索引_加权操作和Luke的简单演示...

    Lucene实战源码

    《Lucene实战源码》是针对搜索引擎库Lucene的一份深度学习资料,它包含了Lucene的源代码,但不包括JAR包。由于完整的源代码文件体积较大,无法直接通过某些平台进行上传,用户需要单独从指定的博客或资源站点下载JAR...

    Lucene实战(第二版)源代码

    IndexWriter在创建索引时会调用Analyzer来处理文档内容,并将处理后的词项写入索引。这个过程中涉及倒排索引的概念,倒排索引将每个词项与包含该词项的文档列表关联起来,极大地提高了搜索效率。在lia2e文件夹中,...

    Lucene实战中文版第2版.pdf

    根据提供的信息,“Lucene实战中文版第2版.pdf”似乎是一本关于Apache Lucene的实践指南书籍。由于具体内容部分没有提供实际的章节或段落文本,我们只能基于标题、描述和标签来推断这本书可能涉及的关键知识点。下面...

    Lucene 实战(第2版)中文带书签.pdf

    《Lucene实战(第2版)》是一本深入讲解Lucene搜索引擎库的中文书籍,针对的是实际应用中的各种场景和问题。Lucene是Apache软件基金会的开源项目,它提供了高性能、全文索引和搜索功能,被广泛应用于各种信息检索系统...

    Lucene实战讲解

    1. 创建索引:首先,需要创建一个Analyzer,然后使用Analyzer对文档进行分析,得到一系列的术语。接着,将这些术语与文档的相关信息一起写入索引。 2. 添加文档:使用Document对象封装文档内容,然后将其添加到...

    lucene实战源码.rar

    《Lucene实战源码》是一本深入探讨Apache Lucene搜索引擎库的书籍,其配套的光盘代码包含了书中各个章节的示例和实验项目。Lucene是Java开发的全文搜索引擎库,广泛应用于各种信息检索和文本分析场景。通过研究这...

    Lucene实战源码(Lucene in Action Source Code)part2

    《Lucene实战源码(Lucene in Action Source Code)part2》是针对知名搜索库Lucene的一份重要学习资源,其包含的是书籍《Lucene in Action》中的实践代码,主要聚焦于Lucene的深入理解和应用。这个压缩包的第二部分...

    Lucene实战源码(Lucene in Action Source Code)part1

    最后,导入和运行这部分源码可以帮助开发者实践Lucene的使用,了解如何创建索引、执行查询、处理结果,并且通过调试和修改源码,进一步深入学习Lucene的底层实现。 总的来说,《Lucene实战源码(Lucene in Action ...

    官方最新完整版lucene-6.6.0.zip

    1. **索引构建**:从各种数据源(如文件、数据库等)读取内容,创建索引结构。 2. **索引更新**:支持增量索引,仅对变动部分进行更新,保持索引实时性。 3. **查询解析**:将用户输入的查询语句转化为适合索引搜索...

    解密搜索引擎技术实战 LUCENE & JAVA(第3版)PDF

    同时,他会讲解如何使用LUCENE API进行索引的创建、更新和删除,以及如何处理多语言文本和特殊字符。此外,还会涉及高级主题,如分布式搜索、近实时搜索、搜索结果的相关性和排序。 书中还涵盖了实际项目开发中可能...

    Lucene的原理完整版pdf

    1. **创建索引**:首先,开发者需要创建一个`IndexWriter`实例,然后调用`addDocument()`方法添加文档到索引中。每个文档的字段会被分词器处理,并生成对应的术语及其位置信息。 2. **搜索索引**:使用`...

    lucene实战 cms

    《Lucene实战CMS:构建高效搜索引擎系统》 在IT领域,搜索引擎是不可或缺的一部分,而Lucene作为Apache软件基金会的一个开放源代码项目,是Java平台上最流行的全文检索库。本实战项目将带你深入理解并运用Lucene,...

    Lucene 实战(第2版) PDF高清中文版

    《Lucene实战(第2版)》是一本深入解析Apache Lucene搜索引擎库的专业书籍,针对中文版,将帮助读者全面理解和掌握如何利用Lucene进行文本检索和数据分析。Lucene是Java开发的一个高性能、全文检索库,它提供了强大的...

    Lucene In Action 第二版 高清中文版+附书源代码

    1. **Lucene基础知识**:介绍Lucene的基本概念,如文档、字段、术语、倒排索引和查询解析,以及如何创建一个基本的Lucene应用。 2. **索引构建**:涵盖如何将结构化和非结构化数据转化为可搜索的索引,包括分词器的...

    Lucene实战(第2版)

    ### Lucene实战(第2版)关键知识点解析 #### 一、Lucene简介与应用价值 **Lucene**是一款高性能的全文搜索引擎库,由Doug Cutting创建,并贡献给了Apache基金会。它能够帮助开发者轻松地在应用程序中集成搜索功能,...

Global site tag (gtag.js) - Google Analytics