首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Solr4云测试版异常org.apache.lucene.store.AlreadyClosedException:此IndexWriter已关闭

Solr4云测试版异常org.apache.lucene.store.AlreadyClosedException:此IndexWriter已关闭
EN

Stack Overflow用户
提问于 2012-09-06 22:39:53
回答 1查看 2.1K关注 0票数 2

我最近从Solr3.6更新到了Solr4测试版。当我试图一次又一次地更新和提交相同的记录时,我得到了下面的异常。有人能帮我解决这个问题吗?

代码语言:javascript
运行
复制
SEVERE: org.apache.solr.common.SolrException: Error opening new searcher
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1267)
    at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1379)
    at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1157)
    at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:560)
    at org.apache.solr.update.processor.RunUpdateProcessor.processCommit(RunUpdateProcessorFactory.java:87)
    at org.apache.solr.update.processor.UpdateRequestProcessor.processCommit(UpdateRequestProcessor.java:64)
    at org.apache.solr.update.processor.DistributedUpdateProcessor.processCommit(DistributedUpdateProcessor.java:959)
    at org.apache.solr.update.processor.LogUpdateProcessor.processCommit(LogUpdateProcessorFactory.java:157)
    at org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:69)
    at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:68)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:1656)
    at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:454)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:275)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:219)
    at org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1812)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.lucene.store.AlreadyClosedException: this IndexWriter is closed
    at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:553)
    at org.apache.lucene.index.IndexWriter.ensureOpen(IndexWriter.java:558)
    at org.apache.lucene.index.IndexWriter.nrtIsCurrent(IndexWriter.java:4061)
    at org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:261)
    at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:240)
    at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:230)
    at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:166)
    at org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1213)
    ... 30 more
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-28 00:47:04

在SolrConfig.xml的query部分中,增加MaxWarmingsearches的数量,并将useColdSearcher设置为true。你可以在这里找到更多信息。http://wiki.apache.org/solr/FAQ#What_does_.22exceeded_limit_of_maxWarmingSearchers.3DX.22_mean.3F

代码语言:javascript
运行
复制
<query>
 <useColdSearcher>true</useColdSearcher>
 <maxWarmingSearchers>6</maxWarmingSearchers>
</query>

在参加了SolrCloud BootCamp并在那里接受了Solr团队的意见后更新。

  • 如果你增加预热搜索器的数量,它将有助于减少上述异常,但它对Searching.
  • Searches没有帮助,比如分面,分组,函数查询使用最大预热搜索器,所以如果你看到上面的异常,他们建议减少提交的数量。增加maxWarmingSearchers,对你没有任何帮助。
  • 他们建议每秒提交一次。如果您计划每秒执行100次提交,并且想要查看实时更新,可以通过关闭maxWarmingSearchers来实现。但如果关闭此功能,像分面和分组这样的查询将需要更多时间。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12302540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档