SolrException:内部服务器错误

Pri*_*iya 10 indexing search solr

我正在申请Solr.我正在使用apache-solr-solrj-1.4.0.jar.

当我尝试从中调用add(SolrInputDocument doc)CommonsHttpSolrServer,我收到以下异常:

org.apache.solr.common.SolrException:org.apache.solr.client.solrj中org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:424)的内部服务器错误内部服务器错误. impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243)位于org.apache.solr.client.solrj.SolrServer.add的org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105) SolrServer.java:64)

有谁可以帮我解决这个问题?

以下是solrconfig.xml中的属性:

<lockType>native</lockType>
<unlockOnStartup>false</unlockOnStartup>
<reopenReaders>true</reopenReaders>
Run Code Online (Sandbox Code Playgroud)

我在solr服务器日志中收到以下异常:

2010年5月24日上午2:51:22 org.apache.solr.common.SolrException log SEVERE:org.apache.solr.handler.ReplicationHandler $ 4.postCommit(ReplicationHandler.java:922)atg的java.lang.NullPointerException.位于org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:411)的apache.solr.update.UpdateHandler.callPostCommitCallbacks(UpdateHandler.java:78)org.apache.solr.update.processor.RunUpdateProcessor.processCommit( RunUpdateProcessorFactory.java:85)org.apache.solr.handler.RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:107)org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:48)org.apache.solr org.apache.solr.core中的.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131).SolrCore.execute(SolrCore.java:1316)在org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)在org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)在组织位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)的.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve)的.java:233)在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)在org.apache.catalina.在org.apache.catalina.core上的valvess.ErrorReportValve.invoke(ErrorReportValve.java:102).StandardEngineValve.invoke(StandardEngineValve.java:109)org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:210)org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java: 347)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)在org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)在org.apache.jk.common.HandlerRequest .invoke(HandlerRequest.java:291)org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)org. org.apache.tomcat.util.threads.ThreadPool上的apache.jk.common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:891)$ ControlRunnable.run(ThreadPool.java:690)at java.lang.Thread.run(Thread.java:619)


信息:{} 0 1039 24 May,2010 2:52:29 AM org.apache.solr.common.SolrException log SEVERE:org.apache.lucene.store.LockObtainFailedException:Lock获取超时:NativeFSLock @./ solr/data位于org.apache.lucene.store.Lock.obtain(Lock.java:85)的/index/lucene-be18de26b941317e71dc59f9e5ba63c4-write.lock位于org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1545)org .apache.lucene.index.IndexWriter.(IndexWriter.java:1402)org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190)org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java) :98)在org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173)在org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220)在org.apache.solr.位于org.apache.solr.handler.XMLLoader.load(XMLLoader.java的org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139)的update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) 69)在org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54)在org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)在org.apache.solr.core.SolrCore .execute(SolrCore.java:1316)在org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)在org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)在有机org.apache.catalina.core上的apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235).ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve) .java:109)org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:210)org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:347)at org. org.apache.jk.server上的apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293).JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)在org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)在org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)在组织.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)在org.apache.jk.common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:891)在org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:690)at java.lang.Thread.run(Thread.java:619)common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:891)atg.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:690)at java.lang.Thread.run(Thread.java: 619)common.ChannelSocket $ SocketConnection.runIt(ChannelSocket.java:891)在org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run(ThreadPool.java:690)在java.lang.Thread.run(Thread.java: 619)

Pri*_*iya 5

我在我的solrconfig.xml中设置了以下内容并且它可以正常工作.

<lockType>simple</lockType>
<unlockOnStartup>true</unlockOnStartup>
Run Code Online (Sandbox Code Playgroud)

另外,设置以下内容以避免索引目录上的写锁定异常:

<maxFieldLength>10000</maxFieldLength>
<writeLockTimeout>60000</writeLockTimeout>
<commitLockTimeout>60000</commitLockTimeout>
Run Code Online (Sandbox Code Playgroud)


Kar*_*ell 1

我很不确定,但在这个线程中

http://www.mail-archive.com/solr-user@lucene.apache.org/msg08048.html

他们建议使用

<unlockOnStartup>true</unlockOnStartup>
Run Code Online (Sandbox Code Playgroud)

<lockType>simple</lockType>
Run Code Online (Sandbox Code Playgroud)

我认为只要您通过 solr 或 solrj 访问索引(不是通过 lucene!),这应该是安全的。

还有其他想法吗?