2017-06-20 97 views
0

我正在运行一个程序,它抓取网页并将数据保存到索引索引中。出于神秘原因,solr服务器崩溃了。而现在我结束了一个损坏的索引,没有任何分段文件,因此冒着失去我5天收集的所有数据的风险......有没有办法解决索引索引

当您尝试搜索此索引时,错误消息如下所示。索引文件夹肯定有数据,因为它有182个文件和2GB的大小。

我曾尝试使用CheckIndex但获取有关不分段文件同样的错误......

java.util.concurrent.ExecutionException: org.apache.solr.common.SolrException: Unable to create core [chase] 
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
    at java.util.concurrent.FutureTask.get(FutureTask.java:192) 
    at org.apache.solr.core.CoreContainer.lambda$load$6(CoreContainer.java:586) 
    at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:229) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:748) 
Caused by: org.apache.solr.common.SolrException: Unable to create core [chase] 
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:935) 
    at org.apache.solr.core.CoreContainer.lambda$load$5(CoreContainer.java:558) 
    at com.codahale.metrics.InstrumentedExecutorService$InstrumentedCallable.call(InstrumentedExecutorService.java:197) 
    ... 5 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:977) 
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:830) 
    at org.apache.solr.core.CoreContainer.create(CoreContainer.java:920) 
    ... 7 more 
Caused by: org.apache.solr.common.SolrException: Error opening new searcher 
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:2069) 
    at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:2189) 
    at org.apache.solr.core.SolrCore.initSearcher(SolrCore.java:1071) 
    at org.apache.solr.core.SolrCore.<init>(SolrCore.java:949) 
    ... 9 more 
Caused by: org.apache.lucene.index.IndexNotFoundException: no segments* file found in LockValidatingDirectoryWrapper(NRTCachingDirectory([email protected]/home/zqz/Work/chase/aws/data/solr/chase/data/index [email protected]; maxCacheMB=48.0 maxMergeSizeMB=4.0)): files: [_fh2.fdt, _fh2.fdx, _fh2.fnm, _fh2.nvd, _fh2.nvm, _fh2.si, _fh2_Lucene50_0.doc, _fh2_Lucene50_0.pos, _fh2_Lucene50_0.tim, _fh2_Lucene50_0.tip, write.lock] 
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:925) 
    at org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java:118) 
    at org.apache.solr.update.SolrIndexWriter.create(SolrIndexWriter.java:93) 
    at org.apache.solr.update.DefaultSolrCoreState.createMainIndexWriter(DefaultSolrCoreState.java:248) 
    at org.apache.solr.update.DefaultSolrCoreState.getIndexWriter(DefaultSolrCoreState.java:122) 
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:2030) 
    ... 12 more 
2017-06-20 14:38:52.428 INFO (qtp475266352-16) [ ] o.a.s.c.TransientSolrCoreCacheDefault Allocating transient cache for 2147483647 transient cores 
2017-06-20 14:38:52.894 INFO (qtp475266352-13) [ ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/cores params={indexInfo=false&wt=json&_=1497969532681} status=0 QTime=11 
2017-06-20 14:38:52.962 INFO (qtp475266352-20) [ ] o.a.s.s.HttpSolrCall [admin] webapp=null path=/admin/info/system params={wt=json&_=1497969532684} status=0 QTime=76 
+1

第一件事:运行CheckIndex你的索引 – Persimmonium

+0

试过这个,但是它也会产生相同的错误,发现没有找到的段文件 – Ziqi

回答

0

你提到的错误是由丢失的文件造成的: 段*如segments_3 ... 索引文件中: files:[_fh2.fdt,_fh2.fdx,_fh2.fnm,_fh2.nvd,_fh2.nvm,_fh2.si,_fh2_Lucene50_0.doc,_fh2_Lucene50_0.pos,_fh2_Lucene50_0.tim, _fh2_Lucene50_0.tip,write.lock]

该文件指定了最后一个提交点和上一代要考虑的段,显然它缺失。 检查该文件是否存在并且可读。

如果不是(例如因为该指数作家没有正确关闭,由于mulfuction,不要绝望。

机会是存在的事务日志包含还是你创建索引的文档,所以你可以只重新播放它并获取文档(清理索引目录,启动solr并且应该注意)。 Solr还允许备份功能,因此将来您可能需要配置它。

+0

谢谢。没有文件不存在。 AWS运行在AWS亚马逊云上,我不知道服务器崩溃的原因。当我去收集数据时,这就是剩下的东西......不幸的是,我无法重新索引这些文件,因为在这种情况下,我正在抓取Twitter流,并且没有办法“重做”直播流。 – Ziqi

+0

您是否启用了事务日志(tlog)? 对于灾难恢复很有用。 –

+0

我不确定,我怎么知道? – Ziqi

相关问题