lucene索引放入内存 存在问题。

经个人测试。如下结论。

1 将索引放入内存 
这是一个最直观的想法,因为内存比磁盘快很多。 Lucene 提供了 RAMDirectory 可以在内存中容纳索引: 

Directory fsDir = FSDirectory.getDirectory(“/data/index/”, false); 
Directory ramDir = new RAMDirectory(fsDir); 
Searcher searcher = new IndexSearcher(ramDir); 

但是实践证明 RAMDirectory 和 FSDirectory 速度差不多,当数据量很小时两者都非常快,当数据量较大时(索引文件 400M ) RAMDirectory 甚至比 FSDirectory 还要慢一点,这确实让人出乎意料。 
而且 lucene 的搜索非常耗内存,即使将 400M 的索引文件载入内存,在运行一段时间后都会 out of memory ,所以个人认为载入内存的作用并不大。