現在,我在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