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

更新lucene到2.3 建立索引遇到的困扰

阅读更多
为了提高索引的速度,利用缓存的方式,达到一定量的时候flush。
lucene2.2版本代码这样写:(部分代码)
IndexWriter fsWriter = new IndexWriter(fsDir,analyzer, true);
addDocument(fsWriter, s); //添加一条信息到Document
if (fsWriter.ramSizeInBytes() > IParaConf.MAXMEMERY) {// 重点:判断内存使用量,大于指定的flush到硬盘。
System.out.println("flush...");
fsWriter.flush();
}

看了lucene2.3的API发现多了一个方法:
public void setRAMBufferSizeMB(double mb)

    Determines the amount of RAM that may be used for buffering added documents before they are flushed as a new Segment. Generally for faster indexing performance it's best to flush by RAM usage instead of document count and use as large a RAM buffer as you can.

    When this is set, the writer will flush whenever buffered documents use this much RAM. Pass in DISABLE_AUTO_FLUSH to prevent triggering a flush due to RAM usage. Note that if flushing by document count is also enabled, then the flush will be triggered by whichever comes first.

    The default value is DEFAULT_RAM_BUFFER_SIZE_MB


于是乎我想既然有了这个方法,我就可以设定好需要的内存,不用再如上那样判断内存使用量了。 可是替换完发现,make index 速度奇慢无比。看一下索引目录,原来在不停的写索引归并文件。  看来这个方法并没有起作用。 无奈,又替换回lucene2.2版本了。
分享到:
评论
2 楼 tongjian 2008-04-17  
看了IndexWriter的API,没发现有设置是否auto commit的参数。

在2.2里 我只要把setMaxBufferedDocs  设置的足够大  就不会提交。我可以判断到内存一定量的时候再手动提交。
2.3里说只有到达setRAMBufferSizeMB的大小的时候才会flush到硬盘。 我设置了这个参数没起作用,不知为何!

而且我把2.2替换成2.3的jar包,不改原来的代码,还是频繁的flush到硬盘,根本不理会setMaxBufferedDocs设置的值
1 楼 edwardpro 2008-04-17  
这是自动commit的参数,如果自动commit就不需要自己提交了,你的问题看来是提交过于频繁。我用下来速度虽然没有官方号称的提高20%但还是有提高的,而且基于2.2的代码一行没改,完全正常。

相关推荐

    lucene.net 2.3版

    Lucene.NET 2.3版是基于原生Lucene 2.3.2的.NET实现,它为.NET开发者提供了完整的搜索和索引功能,包括分词、索引创建、查询解析、结果排序等。这个版本的发布,使得.NET开发者可以轻松地在他们的应用程序中集成高效...

    Lucene.Net2.3源码,最新版

    **Lucene.Net 2.3 源码详解** Lucene.Net 是 Apache Lucene 的 .NET 实现,它是一个高性能、全文本搜索库,适用于 .NET 开发者。这个版本是 2.3,是最新的版本,包含了丰富的功能和优化。通过分析其源码,我们可以...

    lucene 对 xml建立索引

    ### Lucene对XML文档建立索引的技术解析与实践 #### 一、引言 随着互联网技术的迅猛发展,非结构化数据(如XML文档)在企业和组织中的应用日益广泛。如何高效地处理这些非结构化的数据,特别是进行快速检索成为了一...

    Lucene.Net2.3.China中文注(个别连接超时)

    Lucene是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,你就为你的应用实现全文检索的功能. 不过千万别...

    Lucene结合Sql建立索引Demo源码

    Lucene结合Sql建立索引Demo源码 Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的...

    Lucene结合Sql建立索引

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个...本源码演示了Lucene结合Sql建立索引,把Sql中的数据通过建立索引用Lucene来检索 支持简单的中文分词,同时提供了Lucene.Net-2.0-004版本的源码给大家

    Lucene结合Sql建立索引Demo源码.rar

    本源码演示了Lucene结合Sql建立索引,把Sql中的数据通过建立索引用Lucene来检索 【该源码由51aspx提供】   源码 " onerror="this.src='/images/ifnoimg.gif'" src="/uploads/allimg/090904/1039152O5-0.jpg...

    Lucene.Net.2.3

    - **索引创建**:首先,开发者需要创建一个`IndexWriter`实例,然后添加`Document`对象,Lucene会使用指定的`Analyzer`对文档内容进行分析,并建立倒排索引。 - **索引读取**:使用`Directory`对象和`IndexReader`...

    用lucene对数据库建立索引及搜索

    **使用Lucene对数据库建立索引及搜索** Lucene是一个高性能、可伸缩的信息检索库,它是Apache软件基金会的顶级项目之一。它提供了一个简单但功能强大的API,用于在各种数据源上创建全文搜索引擎,包括数据库。在本...

    基于lucene技术的增量索引

    本文将深入探讨如何利用Lucene实现增量索引,这是一种在数据库或文件系统更新时仅对新数据或变化数据进行索引的技术,以降低资源消耗并保持搜索性能。 **1. Lucene基础知识** Lucene首先需要理解的是它的核心概念,...

    lucene2.3

    "lucene-demos-2.3.2.jar" 则包含了一系列示例程序,这些示例展示了如何使用Lucene 2.3进行基本的索引和搜索操作。这对于初学者来说是一份宝贵的资源,通过运行和研究这些示例,开发者可以快速上手并理解Lucene的...

    lucene 2.3

    总结,Lucene 2.3版本是Java平台上实现高速中文检索的利器,它不仅提供了完善的中文支持,还在索引构建、搜索操作、性能优化等方面表现出色。通过不断的技术迭代和社区贡献,Lucene逐渐成为业界公认的全文检索标准...

    lucene2.3API中文文档、lucene-3.5.0JAR包

    首先,`lucene2.3API中文文档.chm`是针对Lucene 2.3版本的中文API文档,这为中文开发者提供了便利,帮助他们理解并使用这个版本的Lucene。在文档中,你可以找到关于Lucene核心组件的详细信息,如Analyzer(分析器)...

    lucene全文检索简单索引和搜索实例

    4. 添加文档到索引:使用IndexWriter对象将Document对象添加到索引目录中。IndexWriter负责管理写入过程,包括合并段(Segment)以优化空间和性能。 5. 关闭资源:完成索引后,记得关闭IndexWriter,释放资源。 三...

    关于lucene建立数据库索引的更新说明

    在本文中,我们将探讨如何使用Lucene建立数据库索引,并分享一些在实践过程中的经验和教训。Lucene是一个高性能、全文本搜索库,广泛用于构建搜索引擎。在创建索引时,需要注意以下关键点: 1. **资料的准确性**:...

    商业源码-编程源码-Lucene结合Sql建立索引Demo源码.zip

    【Lucene结合Sql建立索引】是将数据库中的数据通过Lucene这个全文搜索引擎进行索引,以便快速查询和检索的一种技术。在这个商业源码中,我们可能会看到如何使用Java编程语言来实现这样一个功能。Lucene是Apache软件...

    最简单的Lucene建立、搜索索引的方法

    **Lucene简介** Lucene是Apache软件基金会的一个开放源代码项目,它是一个高性能、全文本检索库,...通过上述步骤,你可以在MyEclipse10环境下使用Lucene快速建立和搜索索引,为你的应用程序添加强大的全文检索功能。

    用Lucene.net对数据库建立索引及搜索

    《使用Lucene.NET对数据库建立索引及搜索》 在信息技术领域,搜索引擎是不可或缺的一部分,尤其是在处理大量数据时。Lucene.NET是一个强大的全文搜索引擎库,它允许开发人员在应用程序中集成高级搜索功能。本文将...

Global site tag (gtag.js) - Google Analytics