Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 什么会导致Lucene索引损坏?_Solr_Lucene - Fatal编程技术网

Solr 什么会导致Lucene索引损坏?

Solr 什么会导致Lucene索引损坏?,solr,lucene,Solr,Lucene,我正试图找出从损坏的索引中恢复的策略。为了“掌握”这种情况发生的频率,我首先想知道可能导致索引损坏的原因,其次,如果存在关于这些事件发生概率的信息,那么这一点就不那么重要了。大多数情况下,由于编写器关闭不当,索引应该损坏 IndexWriter writer=new IndexWriter(dir,analyzer,true); writer.addDocument(doc); writer.close(false); 我不认为指数腐败只是发生了。它被损坏的可能性与实现或运行时中的条件使其损坏

我正试图找出从损坏的索引中恢复的策略。为了“掌握”这种情况发生的频率,我首先想知道可能导致索引损坏的原因,其次,如果存在关于这些事件发生概率的信息,那么这一点就不那么重要了。

大多数情况下,由于编写器关闭不当,索引应该损坏

IndexWriter writer=new IndexWriter(dir,analyzer,true);
writer.addDocument(doc);
writer.close(false);

我不认为指数腐败只是发生了。它被损坏的可能性与实现或运行时中的条件使其损坏的可能性一样。索引文件丢失或格式不正确可能导致损坏。损坏的索引异常将提供更多调试信息(丢失的段文件、不正确的版本等),这将有助于您确定索引中出现了什么错误,您应该尝试运行,并检查日志以查看是否出现了任何可能的原因。有一件事可能会导致索引损坏(我曾经遇到过)正在杀死提交时内存不足的挂起solr实例。此时,我能够从快照恢复索引。这种情况不太可能发生,尤其是在Lucene的最新版本中。谢谢你的评论。据我所知,唯一的原因是Lucene/SOLR/我编写的某些代码中的错误或硬件故障。我在尝试打开索引时,在我的Lucene.Net应用程序中看到了一个
corruptindexception
。该应用程序创建了索引,随后使用Luke进行编辑。问题似乎是由于Luke版本使用了比应用程序使用的Lucene引擎版本更新的Lucene引擎。我使用的是原始Lucene API 6.0.0,并且遇到了@D_K提到的问题。我的程序在一次运行中由于
OutOfMemory
而停止,然后从下一次运行开始,索引目录从未工作过。