ZF-90: memory segmen storage provider


Zend_Search_Lucene_Storage_Directory_RAM and Zend_Search_Lucene_Storage_File_RAM classes should be added to store segment in memory. It should improve indexing performance.


In-memory segment creation is not significant without segment mergin functionality

No, it's Zend_Search issue, which doesn't depends from Zend_Memory.

Zend_Memory goal is to use filesystem (or other backend) as a temporary storage for data, when we don't have enough memory.

memory segmen storage provider is a 'virtual filesystem' in RAM. Goal is to speed up document indexing, which performs a lot of small read/write operations.

Changing fix version to 0.6.0.


Zend_Search_Lucene uses MaxBufferedDocs option to accumulate documents in memory.


In the case where there is a separate Lucene index, built from e.g., Java Lucene, then wouldn't a Zend_Search_Lucene RAMDirectory that loads that separately created index into memory and then supports querying of it as persisted in RAM significantly speed up the performance of ZSL?

I can see how MaxBufferedDocs affects indexing performance, but how does it affect search performance?

Thanks, Chris

Chris, I've just got your comment. MaxBufferedDocs doesn't affect search performance. But Java Lucene RAMDirectory implementation also used only during indexing. OS supported RAM disk or OS level file system caching may be used to increase search performance.

Thanks for your comment, Alexander. Is an OS supported RAM disk or OS level file system caching something that we could implement in Zend_Search_Lucene? I'm willing to help, just point me in the right direction...