`
haofeng82
  • 浏览: 145077 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

LUCENE 读书笔记 20070704

阅读更多
2007-7-4
声明:这只是我的学习笔记,有很多理解不对的地方,发在这里主要是想请大家帮忙看看我的理解有啥不对的地方,不能作为教程看啊…………
创建索引
前面已经创建了Document和Field,那么如何存储创建好的索引呢?这是通过IndexWriter实现的。
IndexWriter在创建的时候需要指定索引文件所在目录参数、分析器参数(用来在进行索引的时候对文本进行分析,用来进行将索引字段进行切词的操作)、是否重新创建索引操作(如果为true,则清空重建,false则是增加在其基础上增加索引)
同时向一个目录下进行索引写操作时,只能由一个IndexWriter进行操作,如果多个IndexWriter会造成同步问题。注意这里说的是同一个IndexWriter,也就是说多个线程操作揖个IndexWriter的写入方法是可以的喽??
接下来讲的例子给出了创建索引的过程。最重要的是不要忘了在结束的时候调用close()函数,只有调用了此函数之后,才会将存放于内存中的数据保存到硬盘上。
看列出的IndexWriter源代码,在addDocument()方法中使用了synchronized防止了多线程同时访问的问题。
性能的调整:
在将索引数据写入磁盘的时候,可以通过三个参数对性能进行优化:
在进行之前需要说的一个概念就是Segment,他是索引文件中最大的一个单位。它是有多个Document(或者Segment)合并起来的。具体格式后面会讲到
1 mergeFactor:这个参数设置了写入磁盘时内存中最大的Document数量,用来设置多少个Document对象可以被预先缓存在内存中,然后将它们一起写入磁盘,默认值为10个;
举例说明:假设设置为10,每当10Document被添加入索引后,将创建一个段(segment<长度为10>);每当凑齐了长度为1010个段时,则会创建整合成一新的段(长度为100),依此类推
所以,较高的mergeFactor值会占用较多的内存,但会在写入时减少对磁盘的访问。通常会加速创建索引的过程,较高的mergeFactor会导致查询速度变慢,因为查询时会从一个较大的索引文件中读取。
2 maxMergeDocs定义了一个段中最大的Document数量,以防止单个Segment 无限扩充下去。
较高的maxMergeDocs适合于批量索引,适合于新创建索引。创建索引的速度快,但占用的内存比较多;较小的值适合于增量式增加索引。
3 minMergeDocs:控制了存储到一个段前,被缓存的Document的数量,这将影响到段在磁盘上的大小,此参数也会改善索引的速度,但是过大会导致内存溢出
这块有点晕,好像两本书讲的不大一样,也可能是俺英文差,没看懂。好像这三参数只是用来在创建索引的时候用。但是这几个参数设置了之后创建出的索引文件是一样的吗?检索效率一样吗?这里需要重看看以后,估计有问题。
分享到:
评论

相关推荐

    Lucene研究,Lucene 读书笔记

    【Lucene 研究与读书笔记】 Lucene 是一个高性能、可扩展的全文检索库,它是Apache软件基金会的顶级项目之一,广泛应用于各种搜索引擎的开发。本文将深入探讨Lucene的核心概念,包括全文检索的基本原理、索引的创建...

    lucene使用总结笔记

    lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记lucene使用总结笔记

    lucene文档笔记详解

    **Lucene文档笔记详解** Lucene,源自Apache软件基金会4 Jakarta项目组,是一个备受开发者青睐的开源全文检索引擎工具包。它提供了强大的文本分析、索引构建和搜索功能,但值得注意的是,Lucene本身并不包含完整的...

    lucene笔记.pdf

    lucene笔记

    Lucene 学习笔记 1

    **Lucene 学习笔记 1** Lucene 是一个全文搜索引擎库,由 Apache 软件基金会开发。它提供了一个可扩展的、高性能的搜索框架,使得开发者能够在其应用程序中集成高级的搜索功能。本篇学习笔记将深入探讨 Lucene 的...

    Lucene学习笔记.doc

    【Lucene学习笔记】 Lucene是一个高性能、全文检索的开源库,完全用Java编写,能够帮助开发者在应用程序中实现复杂的搜索引擎功能。它提供了强大的索引和搜索机制,使得从大量文本数据中快速找到相关信息变得简单。...

    lucene笔记

    ### Lucene知识点详解 #### 一、Lucene简介 **1.1 什么是Lucene** Lucene是一个由Apache基金会维护的开源全文检索引擎工具包。它为开发者提供了一个简便的接口,使得在应用程序中实现高效的全文检索功能成为可能...

    Lucene 3.6 学习笔记

    【Lucene 3.6 学习笔记】 Lucene 是一个高性能、全文本搜索库,广泛应用于各种搜索引擎的开发。本文将深入探讨Lucene 3.6版本中的关键概念、功能以及实现方法。 ### 第一章 Lucene 基础 #### 1.1 索引部分的核心...

    lucene学习笔记

    标题:Lucene学习笔记 描述:Lucene学习笔记,Lucene入门必备材料 知识点: 一、Lucene概述与文档管理策略 Lucene是一款高性能、全功能的文本搜索引擎库,广泛应用于文档检索、全文搜索等场景。为了提升搜索效率...

    传智播客Lucene课程课堂笔记

    传智播客Lucene课程课堂笔记

    lucene课程笔记

    关于lucene开发的工作笔记,详细的介绍了lucene的索引在创建过程中应该主意的一些事项和要求

    Lucene学习笔记(一)Lucene入门实例

    NULL 博文链接:https://kylinsoong.iteye.com/blog/719415

    读书笔记:从Lucene到Elasticsearch全文检索实战源码.zip

    读书笔记:从Lucene到Elasticsearch全文检索实战源码

    Lucene学习笔记

    【Lucene学习笔记】 Lucene 是一款开源的全文检索框架,由Apache软件基金会维护,它提供了高效的、可扩展的搜索引擎功能。不同于一个完整的应用程序,Lucene 提供的是一个基础组件,开发者可以将其集成到自己的应用...

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战.zip

    读书笔记:Lucene全文检索入门项目 Java实现Maven项目 Elasticsearch 基础实战

    【大搜集:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    lucene学习笔记 1 .txt lucene学习笔记 2.txt lucene学习笔记 3 .txt lucene入门实战.txt Lucene 的学习 .txt Lucene-2.0学习文档 .txt Lucene入门与使用 .txt lucene性能.txt 大富翁全文索引和查询的例子...

    lucene3.5学习笔记

    ### Lucene 3.5 学习笔记 #### 一、Lucene 3.5 基本概念 ##### 1.1 Lucene 概述 **1.1.1 IndexWriter** `IndexWriter` 是 Lucene 中的核心类之一,用于创建或更新索引。它提供了添加文档、删除文档、优化索引等...

Global site tag (gtag.js) - Google Analytics