Is there a way of keeping the index in RAM instead of keeping it on the hard disk?
We want to make searching faster.
Check out the RAMDirectory documentation. Here's a basic usage example. This will only work if the index is small enough.
A RAM disk could be a solution for this. A mini-HOWTO is available at http://www.vanemery.com/Linux/Ramdisk/ramdisk.html. Mount the RAM disk as your index directory, and you should be done.
Is there a way of keeping the index in RAM instead of keeping it on the hard disk?
Using the RAMDirectory class
SampleUsage here
Also from the Lucene FAQs
ImproveSearchingSpeed
Generally for faster indexing performance it's best to flush by RAM usage instead of document count and use as large a RAM buffer as you can.
Also check this question:
EDIT: RE: RamDirectory, As the API says RamDirectory is A memory-resident Directory implementation., it keeps only those index in RAM as specified by directory RAMDirecory
RE:Caching In my knowledge, Lucene caches search results by means of filters pls look @ CachingWrapperFilter and QueryWrapperFilter