有许多种目录类型可用于构建Lucene索引。哪一个最适合提高RedHat机器上的搜索速度(不确定操作系统是否相关)?

  • RAMDirectory-无法使用,索引太大
  • SimpleFSDirectory-不能是这个,因为它是'Simple'...
  • MMapDirectory-也许这一个?
  • NIOFSDirectory-还是这个?
  • Any better options?
  • 最佳答案

    除非您有充分的理由选择其他人,否则我建议您仅致电 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);
      }
    }
    

    如果您想尝试确保获得理想的选材,那么我只建议您尝试一下并进行性能分析,以了解哪种性能最佳。

    10-08 16:51