现在,我在lucene中的文档可以在一个字段中有非常大的值(从0到数百MB)。递减索引Lucene文档的内存使用率
我使用Lucene 3.1.0,我创建文档这样的:
doc = new Document();
Field field = new Field(fieldname, VERYLARGEVALUE, store, tokenize, storevector);
doc.add(field);
凡VERYLARGEVALUE是内存中的字符串。我想,也许写VERYLARGEVALUE到一个文件在创建的时候(它是通过从多个来源中提取文本所以它是增量创建),然后使用:
Field field = Field(String name, Reader reader, Field.TermVector termVector);
doc.add(field);
当读者从文件中读取我写了VERYLARGEVALUE。
这是否会减少内存需求,否则VERYLARGEVALUE将最终读取到内存?
当然,但这里的魔鬼是读者如何使用阅读文档,然后索引它。如果整个字符串在某个时候被读入内存,那么对我而言这并不好。 – Persimmonium 2011-04-20 09:48:52
阅读器内容似乎已被添加到索引中。只要经常调用commit()(并且不使用基于内存的索引),内存需求应该是可管理的。 – qwerty 2011-04-20 10:00:44