【发布时间】: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