有许多类型的目录类型可用于构建Lucene索引。哪一个最适合提高RedHat机器的搜索速度(不确定操作系统是否相关)?
RAMDirectory
- 无法使用,索引太大SimpleFSDirectory
- 不能是这个因为它是'简单'...... MMapDirectory
- 也许是这个?NIOFSDirectory
- 还是这个?Any better options?
答案 0 :(得分:9)
除非您有充分的理由选择其中一个,否则我建议您只需致电FSDirectory.open(File)
。这使得Lucene能够决定哪种实现是理想的。
对于好奇,这是决定的方式:
public static FSDirectory open(File path, LockFactory lockFactory) throws IOException {
if ((Constants.WINDOWS || Constants.SUN_OS || Constants.LINUX)
&& Constants.JRE_IS_64BIT && MMapDirectory.UNMAP_SUPPORTED) {
return new MMapDirectory(path, lockFactory);
} else if (Constants.WINDOWS) {
return new SimpleFSDirectory(path, lockFactory);
} else {
return new NIOFSDirectory(path, lockFactory);
}
}
如果你想确保获得比这更理想的选择,我只能推荐尝试和分析,以查看哪种提供最佳性能。