首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

lucene-wiki翻译:怎么提高索引速度-1

2012-07-04 
lucene-wiki翻译:如何提高索引速度-1原文:http://wiki.apache.org/lucene-java/ImproveIndexingSpeed 导航

lucene-wiki翻译:如何提高索引速度-1
原文:http://wiki.apache.org/lucene-java/ImproveIndexingSpeed 导航:Lucene-java Wiki-》1 Overview-》1.1?Informational-》 1.1.1BasicsOfPerformance-》1.1.1.4?ImproveIndexingSpeed 注意:“ 红色?”,表示不知道、不确定怎么翻译。 ?“ 蓝色”自己的描述。状态:完成

如何加快索引速度呢

? ? 原文 写道

For Lucene >= 2.3: IndexWriter can flush according to RAM usage itself. Call writer.setRAMBufferSizeMB() to set the buffer size. Be sure you don't also have any leftover calls to setMaxBufferedDocs since the writer will flush "either or" (whichever comes first).

?

? ??

?

?? ? 大家知道,IO操作是非常慢的,而RAM则快了非常之多。所以Lucene在建立索引的时候通常先把索引写入到内存当中,等达到一定数量后在写入到磁盘中,以提升索引速度。所以这里的问题变成了:何时或者什么情况下写入磁盘呢?

? ? 有两种方式,第一种:计算文档个数,例如当在RAM中索引了100个文档后,我就将RAM中的索引写入到磁盘中。

? ? 第二种,根据 RAM?情况,如果感觉RAM还挺多,就继续写入到RAM中;否则就写到磁盘中。


? ? 总结:显然第二种智能多了;第一种,不好说了,或许有些机器10000个都不多,有些1000个就不行了,呵呵。

?

? ??我的蹩脚的翻译,呵呵 写道

?

? ??对于Lucene<=2.2的版本:当Lucene占用太多内存(RAM)的时候,我们可以再每个“added doc” 之后调用 writer.ramSizeInBytes() 方法,接着调用flush()方法。如果你要索引的文档(docs )很小或者highly variable doc sizes,这种方式将非常好。为了防止写入器(writer )达到某个文档个数时就写入磁盘,你需要首先把maxBufferedDocs设置的足够大。但也不要设置的过大,可以参考LUCENE-845 。通常,按照 2-3X这个公式去刷新应该就可以。

?

? ? 在看看高人的翻译,差距啊。99%普通 100%专家啊lucene-wiki翻译:怎么提高索引速度-1? ??

,可以看看这个:lucene3.0_和IndexWriter有关的几个参数设置及重建索引注意事项。

?

? ? ?对于Lucene >= 2.3?的版本,IndexWriter?他自己就可以根据RAM?使用情况来刷新(写入磁盘)。可以通过?writer.setRAMBufferSizeMB()来设置缓存大小。当你打算按照内存大小flush后,确保没有在别的地方设置MaxBufferedDocs值。否则flush条件将变的不确定(谁先符合条件就按照谁)。


下接:lucene-wiki翻译:如何提高索引速度-2

?

热点排行