`
dwljd
  • 浏览: 6113 次
  • 性别: Icon_minigender_1
  • 来自: 福建
最近访客 更多访客>>
社区版块
存档分类
最新评论

Lucene索引性能与数据

    博客分类:
  • Java
阅读更多
本文转载自:http://www.cnblogs.com/jinzhao/archive/2012/04/12/2444440.html


虽然是很久了的数据,还是有很好的参考价值的:

lucene.commit.batch.size=0
lucene.commit.time.interval=0

These properties allow commits in batch, you can either set how many document changes a batch will contain (commit will happen after X docs are modified) or set a time interval in milliseconds (commit will happen every X milliseconds).

lucene.buffer.size=16

This will call IndexWriter's setRAMBufferSizeMB method, this the max memory in megabytes used by Lucene before flushing documents, a higher number means less disk writes.

These 3 new properties will make reindexing faster, I've made stress tests and I could perceive a 30% improvement in certain configurations, I also learned the following while tweaking Lucene properties:

A higher lucene.buffer.size helps a lot during reindex, but there is a up bound limit, over that limit, reindex won't get faster, for example, setting to 32MB or 48MB gave the same results, but 32MB was much better than the default, 16MB.

It's a bad idea to set lucene.merge.factor to a very high number, there will be much more disk write accesses and this will degrade performance, keep it at 10.
Set lucene.autocommit.documents.interval to the number of documents you have in the index, this means only 1 commit will happen. I thought this property would bring better performance results, but it made it faster around 15% only.

Setting a higher lucene.optimize.interval can make some improvement, but since the reindex process also make searches, it's important that you also optimize the index often during reindex, you need to find a balance.

<hr />
My stress tests consisted in reindexing 30.000 blog entries, I tested on a Intel Quadcore 2.66GHz, 4MB of RAM, Ubuntu 32 bits. The best result was around 4 minutes with this configuration:
lucene.commit.time.interval=30000
lucene.merge.factor=10
lucene.optimize.interval=10000
lucene.buffer.size=48

The worst result was 7:35 minutes (not considering the one I set lucene.merge.factor to 1000):
lucene.commit.time.interval=0
lucene.merge.factor=50
lucene.optimize.interval=1000
lucene.buffer.size=16

Here are the other results:
lucene.commit.time.interval=0
lucene.merge.factor=15
lucene.optimize.interval=30000
lucene.buffer.size=16
7:30 minutes

lucene.commit.time.interval=0
lucene.merge.factor=10
lucene.optimize.interval=100
lucene.buffer.size=16
7:18 minutes

lucene.commit.time.interval=10000
lucene.merge.factor=10
lucene.optimize.interval=100
lucene.buffer.size=16
06:23 minutes

lucene.commit.time.interval=1000
lucene.merge.factor=10
lucene.optimize.interval=100
lucene.buffer.size=16
6:00 minutes

lucene.commit.time.interval=30000
lucene.merge.factor=10
lucene.optimize.interval=100
lucene.buffer.size=32
5:00 minutes

lucene.commit.time.interval=30000
lucene.merge.factor=10
lucene.optimize.interval=100
lucene.buffer.size=48
5:00 minutes

lucene.commit.time.interval=30000
lucene.merge.factor=10
lucene.optimize.interval=50000
lucene.buffer.size=48
5:00 minutes

lucene.commit.time.interval=15000
lucene.merge.factor=10
lucene.optimize.interval=10000
lucene.buffer.size=48
5:00 minutes

lucene.commit.time.interval=30000
lucene.merge.factor=10
lucene.optimize.interval=1000
lucene.buffer.size=48
4:30 minutes


作者:KKcat
    
分享到:
评论

相关推荐

    深入 Lucene 索引机制

    以下是对Lucene索引机制的详细解析: 一、Lucene的索引过程 1. 文档分析:当向Lucene添加文档时,首先会经过一个分词器(Tokenizer),将文本拆分成一系列的词项(Token)。接着,这些词项会被过滤(Filter)和...

    Lucene索引器实例

    **Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个高级的、灵活的、可扩展的接口,使得开发者能够轻松地在应用程序中实现全文...

    lucene索引查看工具及源码

    通过阅读和学习 Luke 的源码,我们可以了解到如何与 Lucene 索引进行交互,以及索引结构是如何组织和存储的。 在提供的压缩包 "luke-3.3.0" 中,包含了 Luke 工具的旧版本。这个版本可能不支持最新的 Lucene 版本,...

    lucene 索引 查看 工具

    在 Lucene 的使用过程中,创建索引是关键步骤,而有时我们需要查看这些索引来了解其结构、内容以及优化搜索性能。这就是"Lucene 索引 查看 工具"的用途,它可以帮助我们分析和理解 Lucene 索引的工作原理。 主要...

    Lucene索引和查询

    **Lucene索引和查询** Lucene是Apache软件基金会的开放源码全文搜索引擎库,它提供了文本检索的核心工具,使得开发者能够快速构建自己的搜索应用。本项目中的代码旨在展示如何利用Lucene对多个文件夹下的数据进行...

    lucene索引查看工具luck7.4.0

    `Luck`,全称`Luke`,是一款强大的Lucene索引浏览器和分析器工具,可以帮助开发者、数据分析师以及对Lucene感兴趣的人员查看、理解和调试Lucene索引。 `Luke 7.4.0`是这款工具的一个特定版本,它专门设计用来与...

    Lucene索引数据分析器

    **Lucene索引数据分析器** Lucene是一款强大的开源全文搜索引擎库,由Apache软件基金会开发,广泛应用于各种数据检索系统。它的核心功能在于高效地构建、管理和搜索文本索引,为开发者提供快速的数据查询能力。本篇...

    luke--- lucene索引数据查看器

    **luke——Lucene索引数据查看器** Luke是一款强大的Lucene索引浏览器,它为开发者和搜索引擎优化人员提供了一种直观的方式来查看和分析由Apache Lucene创建的索引。Lucene是一个开源全文检索库,广泛应用于各种...

    Lucene 索引的简单使用

    以上就是关于“Lucene索引的简单使用”的详细介绍,包括其核心概念、创建和查询索引的步骤以及一些高级特性。希望对你理解和应用Lucene有所帮助。在实际开发中,可以根据需求选择合适的Analyzer,优化索引策略,以...

    Lucene索引文件查看工具lukeall4.7.1

    《深入理解Lucene索引文件查看工具LukeAll 4.7.1》 在信息检索领域,Lucene作为一款强大的全文搜索引擎库,被广泛应用在各种数据检索系统中。然而,对于开发者来说,理解并调试Lucene创建的索引文件并非易事。此时...

    lucene索引结构原理.docx

    而在Lucene中,基本单位是Document,它同样由多个字段组成,但Lucene索引的是这些字段的内容,以加速文本检索。 - **索引构建**:Lucene支持增量索引和批量索引,可以处理数据源的小幅变化或大规模数据。数据库通常...

    lucene索引文件格式介绍

    了解这些文件格式后,我们还要知道Lucene索引中使用的基本数据类型,如Byte、UInt32、UInt64和VInt。VInt是一种变长整数类型,它根据数值大小动态占用字节,有效地节省了存储空间。 总的来说,Lucene的索引文件格式...

    lucene索引结构原理

    **Lucene索引结构原理** Lucene是Apache软件基金会的开放源代码全文搜索引擎库,它为Java开发人员提供了强大的文本搜索功能。理解Lucene的索引结构原理对于优化搜索性能和设计高效的搜索应用至关重要。 首先,我们...

    lucene 索引小示例

    《Lucene索引小示例解析》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。在Java编程环境中,Lucene被广泛应用于构建搜索功能,特别是对于大量文本数据的高效检索。本篇文章将通过一个简单的小...

    luke源码--查看lucene索引文件

    《深入理解Luke:洞察Lucene索引文件》 在信息技术领域,搜索引擎的高效运作离不开对数据的快速检索,而Lucene作为开源全文检索库,扮演了核心角色。在这个过程中,Luke工具提供了一种直观的方式,让我们能够查看和...

    luke8用于查看lucene保存的索引库数据和文档数据

    而luke8,则是针对Lucene开发的一款可视化工具,允许开发者和管理员直接查看并分析Lucene索引库中的数据。 **1. lucene全解** Lucene的核心功能在于构建和管理全文索引。它将非结构化的文本数据(如网页、文档)...

    基于lucene技术的增量索引

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

    Lucene读取索引文件

    一个Lucene索引是由多个文件组成的,包括但不限于 segments文件、.del文件(删除文档标记)、.tii和.tis文件(Term Info Index和Term Info postings)、.frx、.fdx、.fdt、.fdt(Field Data)等。这些文件共同构成了...

    基于Lucene索引的分析与实现

    【基于 Lucene 索引的分析与实现】 在当今信息爆炸的时代,互联网上的数据量呈指数级增长,人们对于...通过深入研究和实践,我们可以充分利用Lucene的特性,优化索引构建和查询性能,满足不同场景下的信息检索需求。

Global site tag (gtag.js) - Google Analytics