`
yufenfei
  • 浏览: 801021 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene之三(文件操作类2-FSDirectory)

 
阅读更多

 

FSDirectory

FSDirectoryLucene对文件系统的操作,它有下面三个子类SimpleFSDirectoryMmapDirectoryNIOFSDirectory

       FSDirectory是一个抽象类,具体实现由子类来完成。

 

1、SimpleFSDirectory

    最简单的FSDirectory子类,使用java.io.*API将文件存入文件系统中,不能很好支持多线程操作。因为要做到这点就必须在内部加入锁,而java.io.*并不支持按位置读取。

   

2、NIOFSDirectory

   使用java.io.*API所提供的位置读取接口,能很好的支持除Windows之外的多线程操作,原因是SunJREWindows平台上长期存在问题。

   NIOFSDirectoryWindows操作系统的性能比较差,甚至可能比SimpleFSDirecory的性能还差。

3、MmapDirectory

   使用内存映射的I/O接口进行读操作,这样不需要采取锁机制,并能很好的支持多线程读操作。但由于内存映射的I/O所消耗的地址空间是与索引尺寸相等,所以建议最好只是用64JRE

 

 

 

public class TestIndexWriterFSDirectory {
	private IndexWriter writer=null;
	private Directory directory=null;
	private IndexReader reader = null;
	private IndexSearcher searcher=null;
	private IndexWriterDemo demo =new IndexWriterDemo();
	
	@Before
	public void setUp() throws Exception {
		directory = new SimpleFSDirectory(new File("F:/luc_dir"));
		IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36,new SimpleAnalyzer(Version.LUCENE_36));
		writer = new IndexWriter(directory,config);
	}

	@Test
	public void testLucene()throws Exception {
		/**生成索引库*/
		demo.buildDocs(writer);
		
		/**查询数据*/
		reader = IndexReader.open(directory);
		searcher =new IndexSearcher(reader);
		demo.searcherDocs(searcher);
	}
}
 

 

分享到:
评论

相关推荐

    Lucene读取索引文件

    《深入理解Lucene:解析索引文件的读取》 Lucene,作为一款强大的全文搜索引擎库,被广泛应用于各类信息检索系统中。它的核心功能之一就是构建和读取索引文件,以高效地进行文本搜索。本文将深入探讨Lucene如何读取...

    Lucene索引的基本操作

    **Lucene索引的基本操作** Lucene是一款由Apache软件基金会开发的全文检索库,它提供了高效、可扩展的全文检索功能。在Java开发环境中,Lucene是广泛使用的文本搜索工具,能够帮助开发者构建复杂的搜索引擎。本文将...

    lucene-3.0.2-dev-src

    `Directory`类及其子类封装了对索引文件的读写操作。 6. **更新与删除** `IndexWriter`不仅用于创建索引,还支持对索引的动态更新。通过添加、删除`Document`,可以实现对已有索引的修改。删除操作通过添加删除...

    lucene2.9开发指南

    以上是Lucene2.9开发的关键概念和操作步骤,掌握这些知识后,开发者可以构建起基本的全文搜索引擎。然而,实际应用中可能还需要考虑更多的细节,比如优化索引性能、处理多语言文本、提升搜索精度等。随着对Lucene的...

    lucene jar包

    三、使用Lucene的关键步骤 1. 创建索引:使用`IndexWriter`将文档写入索引,这个过程包括分词、建立倒排索引等操作。 2. 分析文本:通过`Analyzer`对输入文本进行处理,生成适合搜索的术语。 3. 查询索引:使用`...

    spring-lucene简单项目

    项目开始时,你需要在Spring配置文件中声明Lucene的相关bean,如Analyzer(分析器)、Directory(存储索引的目录)和IndexWriter(负责创建和更新索引)。Analyzer用于分词,将输入的文本拆分成可搜索的单元。...

    lucene-2.4.0-src.zip

    例如,`FSDirectory`用于将索引存储在文件系统中,`RAMDirectory`则用于内存中的索引,这使得在内存有限的情况下也能进行快速测试。`SegmentReader`和`IndexReader`是读取索引的主要类,它们提供了对索引数据的访问...

    lucene包,lucene实现核心代码

    - `IndexSearcher`:执行搜索操作的核心类,可以接受Query对象并返回匹配的文档集。 - `Query`:代表用户输入的搜索条件,如TermQuery、BooleanQuery、PhraseQuery等。 - `ScoreDoc`和`TopDocs`:用于存储搜索...

    lucene 5.4.1 官方文档离线版

    - **FSDirectory**:基于文件系统的索引存储,更适用于大规模持久化索引。 - **Segment**:Lucene的基本存储单元,可以独立读写,便于并行处理。 6. **性能优化**: - **Compound File Format (CFS)**:将多个小...

    Annotated Lucene 中文版 Lucene源码剖析

    - `org.apache.lucene.store.Directory`接口定义了存储索引的基本行为,其实现类包括基于文件系统的`FSDirectory`和基于内存的`RAMDirectory`。 - `org.apache.lucene.store.IndexInput`和`org.apache.lucene....

    lucene 2.0 api以及lucene 3.0 api

    通过 `API_lucene3.0.0.chm` 文件,开发者可以找到完整的 Lucene 3.0 API 文档,包括类、方法、接口的详细说明,以及示例代码,这对于理解和使用新版本的 Lucene 非常有帮助。 同样,`lucene-2.0.CHM` 文件则提供了...

    供lucene初学者学习的几个类

    下面我们将深入探讨与标题和描述相关的几个关键Lucene类,以及如何进行建索引和查询操作。 1. **Analyzer**: 分析器是Lucene的核心组件之一,负责将输入文本拆分成一系列可搜索的术语(tokens)。例如,`...

    lucene-api.rar_lucene

    本文档将深入探讨Lucene API的核心组件和主要操作。 ### 1. Lucene基本概念 - **索引(Index)**: 在Lucene中,索引是对文本数据进行结构化的表示,使得快速查询成为可能。索引过程包括分析文本、创建倒排索引等...

    Lucene.Net-2.9.2 c#源码

    《深入剖析Lucene.Net 2.9.2:C#版源码解析与应用实践》 Lucene.Net是一个开源的全文检索库,它是Apache Lucene项目在.NET平台上的实现,适用于C#开发者。版本2.9.2是该库的一个稳定版本,提供了强大的文本搜索功能...

    lucene2.9.1所有最新开发包及源码及文档

    对索引进行读取和删除操作的IndexReader类。 3) store模块:负责索引的存储。提供索引的各种存储类:FSDirectory,RAMDirectory等。 4) document模块:索引文件内部的基础存储结构封装。如:Document类和Field类等...

    lucene 最新版本所有jar包

    2. **Lucene-Queries**: 提供了高级查询结构,例如BooleanQuery、PhraseQuery、WildcardQuery等。 3. **Lucene-Suggest**: 该模块提供了自动补全和建议功能,用于提升用户体验。 4. **Lucene-Spatial**: 支持地理...

    lucene3.5学习笔记

    `IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等操作的功能。 **1.1.2 Directory** `Directory` 在 Lucene 中代表了存储索引的地方,可以是硬盘上的文件...

    lucene4.7所需jar包

    1. 将所有必要的jar文件添加到项目的类路径中,这可以通过IDE的配置或者构建工具(如Maven或Gradle)来完成。 2. 创建`Directory`对象,例如使用`FSDirectory`打开磁盘上的索引目录。 3. 使用`IndexWriterConfig`和...

Global site tag (gtag.js) - Google Analytics