我需要提高我的Lucene搜索查询的性能。我可以使用RAMDirectory吗?它能优化性能吗?对此有索引大小限制吗?如果有人能列出使用RAMDirectory的利弊,我将不胜感激。
谢谢。
发布于 2012-04-11 13:48:43
我比较了FSDirectory和RAMDirectory。
搜索1000个关键字,此处是平均/最小/最大响应时间(ms)
重启应用程序第一次运行: 351/7/2611
所以,你可以看到RAMDirectory比FSDirectory更快,但是在'os文件缓存预热‘之后,速度差距就不那么明显了。RMADirectory的缺点是什么?在我的测试中
发布于 2009-10-17 14:58:48
RAMDirectory更快,但不会写入磁盘。它只在你的程序运行时存在,每次你的程序运行时都必须从头开始创建。
如果您的索引足够小,可以轻松地装入内存,并且不经常更新它,那么可以在磁盘上维护一个索引,然后使用RAMDirectory(Directory dir)构造函数从它创建一个RAMDirectory。一旦你付出了加载它的代价,那么查询它就应该比查询磁盘上的那个更快。但是一定要测量差异-如果索引可以作为RAMDirectory放入内存中,那么它也可以放入磁盘缓存中,因此您可能看不到太大的差异。
发布于 2009-10-19 16:02:58
您应该分析RAMDirectory的使用情况。至少在Linux中,由于操作系统缓冲I/O的方式,使用RAMDirectory并不比使用默认的FSDirectory快。
https://stackoverflow.com/questions/1582377
复制相似问题