Solr在org.apache.solr.core中打开新搜索器时出错

时间:2015-06-10 04:45:28

标签: java solr lucene

昨天突然我们的solr服务器因以下异常而停止了

  

org.apache.solr.common.SolrException:在打开新搜索器时出错   org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1438)at at   org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1550)at at   org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1319)at at   org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:574)   在   org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:95)   在   org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)   在   org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:1147)   在   org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:157)   在   org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:266)   在org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)   在   org.apache.solr.handler.UpdateRequestHandler $ 1.load(UpdateRequestHandler.java:92)

     

引起:java.io.IOException:Map失败了   sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:889)at at   org.apache.lucene.store.MMapDirectory.map(MMapDirectory.java:283)at   org.apache.lucene.store.MMapDirectory $ MMapIndexInput。

但当时我们在该服务器上留下了大量内存。有什么猜测吗?

3 个答案:

答案 0 :(得分:1)

假设它是一个Linux系统,你可以尝试ulimit -v unlimited

查看以下链接以获取更多信息。

https://support.lucidworks.com/hc/en-us/articles/206127457-Caused-by-java-io-IOException-Map-failed

https://stackoverflow.com/a/8893684/689625

如果您包含更多信息,例如软件版本(在本例中为solr版本),操作系统名称和版本,Java版本等,您将获得更快的答案。

答案 1 :(得分:1)

我收到了这个错误:

Error creating core [mm_shard1_replica1]: Error opening new searcher

并尝试摆弄ulimitmax_map_count

最后它被证明是一个错误的错误消息,因为问题证明是一个腐败的索引。

通过关闭solr并执行此操作来修复它:

cd /var/lib/solr/example/solr-webapp/webapp/WEB-INF/lib
java -cp lucene-core-4.10.4.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /path/to/index -fix

要检查索引是否已损坏,请删除上述命令末尾的-fix。之后我启动了solr,它从solrcloud集群的其余部分重新创建了索引。

答案 2 :(得分:0)

标志-fix在我的更高版本中不起作用,相反,我使用了exorcise

java -cp lucene-core-5.5.0.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex PATH_TO_INDEX -exorcise

我希望这会有所帮助。