【问题标题】:Choosing the right Lucene Directory选择正确的 Lucene 目录
【发布时间】:2013-09-23 23:06:23
【问题描述】:

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

  • RAMDirectory - 无法使用,索引太大
  • SimpleFSDirectory - 不可能是这个,因为它很“简单”...
  • MMapDirectory - 也许是这个?
  • NIOFSDirectory - 还是这个?
  • Any better options?

【问题讨论】:

    标签: java lucene full-text-search


    【解决方案1】:

    除非您有充分的理由选择其中之一,否则我建议您直接致电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);
      }
    }
    

    如果您想更确定地获得理想的选择,我只能建议您尝试它们并进行分析,看看哪个提供了最佳性能。

    【讨论】:

    • 不错!而且我相信我在创建索引时也必须做同样的事情,对吧?
    • 是的,目录可以在创建或替换索引或打开现有索引时以相同的方式打开。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多