在NoSuchDirectoryException和IndexNotFoundException之间捕获

时间:2014-08-07 09:22:09

标签: exception solr lucene islandora

我试图按照https://wiki.duraspace.org/display/ISLANDORA713/Islandora设置Islandora 7.1.3。 Fedora Commons和Drupal正在工作,但我遇到了Solr 4.2 / fedoragsearch 2.6的问题。

按照https://wiki.duraspace.org/display/ISLANDORA713/Installing+Solr+and+GSearch的说明,我在第14步遇到了问题。

当我尝试在[url] / fedoragsearch / rest更新索引时:operation = updateIndex我收到此错误:

  

IndexReader打开错误indexName = FgsIndex :;嵌套异常是:org.apache.lucene.store.NoSuchDirectoryException:directory' path / to / solr / collection1 / data / index'不存在

这似乎很简单,所以我关闭了tomcat并在现有的collection1目录中创建了数据/索引。重新启动tomcat并再次尝试给了我:

  

IndexReader打开错误indexName = FgsIndex :;嵌套异常是:org.apache.lucene.index.IndexNotFoundException:在org.apache.lucene.store.SimpleFSDirectory@/path/to/solr/collection1/data/index lockFactory = org.apache.lucene中找不到segments *文件。 store.NativeFSLockFactory@68aed52c:files:[]

快速搜索此错误表明索引目录是否存在Solr希望它不为空,解决方案是删除目录并让Solr创建它。但这给了我以前的错误。

我已尝试使用和不使用collection1 / data目录(无论是NoSuchDirectoryException),并且我在尝试工作时将collection1(和collection1 / data,如果存在)的权限设置为777这个。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

OP似乎已在Islandora Google Group上解决了这个问题。

它似乎是由solrconfig.xml DataDir与gsearch寻找索引的位置不匹配引起的:

  

solrconfig.xml在solr / data中指定了dataDir。 gsearch正在寻找solr / collection1 / data。

Mark Jordan已在Islandora指南上发布了类似的评论:https://wiki.duraspace.org/display/ISLANDORA713/Installing+Solr+and+GSearch

  

解决方法是修改$ FEDORA_HOME / solr / collection1 / conf / solrconfig.xml:

<dataDir>${solr.data.dir:}</dataDir>
     

应该是

<dataDir>${solr.data.dir:./solr/data}</dataDir>

答案 1 :(得分:-1)

当您尝试使用/列出不存在的目录时,基本上会抛出异常NoSuchDirectoryException,因此您必须先创建它。

异常IndexNotFoundException表示目录中未找到索引。可能是因为目录为空,但也可能表示索引损坏。

因此,在这种情况下,您应该删除数据目录,并在启动时重新创建。