【发布时间】:2013-01-09 17:10:51
【问题描述】:
我正在尝试找出从损坏的索引中恢复的策略。为了“掌握”这可能发生的频率,我主要想知道可能导致索引损坏的事情,其次,如果存在有关这些事件发生概率的信息,那么虽然不是那么重要。
【问题讨论】:
-
我认为索引损坏不会发生。损坏的可能性与您的实现或运行时中的条件可能使其损坏一样。损坏可能是由于索引文件丢失或格式不正确造成的。损坏的索引异常将提供更多调试信息(缺少段文件、不正确的版本等),这会有所帮助,您应该尝试运行CheckIndex,以确定您的索引中出了什么问题,并检查日志以查看如果有任何可能的原因出现在那里。
-
可能导致索引损坏的一件事(并且曾经发生在我身上)是在提交时杀死已耗尽内存的挂起的 solr 实例。那时我能够从快照中恢复索引。这种情况不太可能发生,尤其是在最新版本的 Lucene 中。
-
感谢您的 cmets。据我所知,唯一的原因是 Lucene/SOLR/我编写的某些代码中的错误或硬件故障。
-
在尝试打开索引时,我的 Lucene.Net 应用程序中出现了
CorruptIndexException。该应用程序创建了索引,后来使用 Luke 进行了编辑。与应用程序使用的引擎版本相比,问题似乎是由于 Luke 的版本使用了更新版本的 Lucene 引擎。 -
我正在使用原始 lucene API 6.0.0 并遇到了@D_K 提到的问题。我的程序由于
OutOfMemory停止了一次运行,然后从下一次运行病房开始,索引目录从未工作过。