【问题标题】:Optimizing big Lucene index fails silently优化大 Lucene 索引默默地失败
【发布时间】:2013-01-23 16:00:40
【问题描述】:

我有一个关于优化大型 Lucene 索引的问题(现在是 197 Gb - 对你们中的某些人来说可能听起来没那么大)。 我正在使用版本 2.9.4 的 Lucene,当我需要将具有 900 个段的索引优化为更少的段(理想情况下为 1-10)时,我进入了一个状态。我仍在调用 2.9.4 中可用的 IndexWriter.optimize(),但设置合并因子以同样的方式失败。

所以,在优化我的日志一小时后(我已经设置了所有可能的日志)说优化已完成并且任何日志文件中都没有错误。一切看起来都很好,除了索引目录中的文件仍然相同 - 没有减少或删除的文件数量被删除。 我有足够的驱动器空间 (300 Gb) 并且没有打开阅读器或搜索器 - 索引是孤立的并专注于优化。

根据索引 wirter 日志,合并线程合并段并迭代打印出从 900 到 456 的一些段数,然后突然它说它正在将所有这些段合并到 16 个段(这是我设置的一个或多个段合并到)

有人知道会发生什么吗?我是否合并了太多细分?是否存在任何与操作系统相关的(Windows Server 2008)问题,例如“打开的文件处理程序太多”(我在哪里可以查看该消息)? 提前致谢

【问题讨论】:

  • 可以去lucene 4吗? (也许 3 作为权宜之计)有很多你可能想要的错误修复
  • 感谢您的建议,但我们非常依赖 Lucene 2.4 API(以及那些已弃用的 Hits 等)。我确实解决了这个问题。我尝试先索引更多文档,然后提交它们并仅在同一线程中运行优化。这解决了这个问题。我只能认为索引处于某种不一致的状态,并且对索引的更多写入/提交使其工作。

标签: lucene


【解决方案1】:

这不是失败。问题很简单——你只需要在优化完成后打开索引阅读器(或重新打开现有的)。而已。当您在几秒钟内打开阅读器时,它将用新文件列表替换旧的索引文件。

【讨论】:

    猜你喜欢
    • 2015-06-20
    • 2011-01-03
    • 2019-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    相关资源
    最近更新 更多