2010-05-24 4 views
10

Я работаю над Solr в своем приложении. Я использую apache-solr-solrj-1.4.0.jar.SolrException: Внутренняя ошибка сервера

Когда я пытаюсь позвонить add(SolrInputDocument doc) из CommonsHttpSolrServer, я получаю следующее исключение:

org.apache.solr.common.SolrException: Внутренняя ошибка сервера Внутренняя ошибка сервера в org.apache.solr .client.solrj.impl.CommonsHttpSolrServer.request (CommonsHttpSolrServer.java:424) at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request (CommonsHttpSolrServer.java:243) at org.apache.solr.client .solrj.request.AbstractUpdateRequest.process (AbstractUpdateRequest.java:105) at org.apache.solr.client.solr j.SolrServer.add (SolrServer.java:64)

Может ли кто-нибудь помочь мне решить эту проблему?

Ниже перечислены атрибуты в solrconfig.xml:

<lockType>native</lockType> 
<unlockOnStartup>false</unlockOnStartup> 
<reopenReaders>true</reopenReaders> 

Я получаю следующее исключение в журналах Solr сервера:

24 мая, 2010 2: 51:22 AM org.apache.solr.common.SolrException log SEVERE: java.lang.NullPointerException at org.apache.solr.handler.ReplicationHandler $ 4.p ostCommit (ReplicationHandler.java:922) на org.apache.solr.update.UpdateHandler.callPostCommitCallbacks (UpdateHandler.java:78) на org.apache.solr.update.DirectUpdateHandler2.commit (DirectUpdateHandler2.java:411) на org.apache.solr.update.processor.RunUpdateProcessor.processCommit (RunUpdateProcessorFactory.java:85) at org.apache.solr.handler.RequestHandlerUtils.handleCommit (RequestHandlerUtils.java:107) at org.apache.solr.handler. ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:48) at org.apache.solr.handler.RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute (SolrCore.java:1316) at org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFil ter.java:338) на org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:241) на org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) в орг. apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) на 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.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) в орг. apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) at org.apache.catalina.ha.session.JvmRouteBinderValve.invoke (JvmRouteBinderValve.java:210) at org.apache.catalina.ha.tcp.ReplicationValve.invoke (ReplicationValve.java:347) at org.apache. catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293) at org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java: 190) at org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:291) at org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:769) at org.apache. jk.common.ChannelSocket.processConnection (ChannelSocket.java:698) at org.apache.jk.common.ChannelSocket $ SocketConnection.runIt (ChannelSocket.java:891) at org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:690) на java.lang.Thread.run (Thread.java:619)


ИНФОРМАЦИЯ: {} 0 1039 24 мая 2010 г. 2:52:29 org.apache.solr.common.SolrException log SEVERE: org.apache.lucene.store.LockObtainFailedException: время ожидания блокировки: NativeFSLock @./Solr/data/index/lucene -be18de26b941317e71dc59f9e5ba63c4-write.lock at org.apache.lucene.store.Lock.obtain (Lock.java:85) at org.apache.lucene.index.IndexWriter.init (IndexWriter.java:1545) at org. apache.lucene.index.IndexWriter. (IndexWriter.java:1402) at org.apache.solr.update.SolrIndexWriter. (SolrIndexWriter.java:190) at org.apache.solr.update.UpdateHandler.createMainIndexWriter (UpdateHandler. java: 98) at org.apache.solr.update.DirectUpdateHandler2.openWriter (DirectUpdateHandler2.java:173) at org.apache.solr.update.DirectUpdateHandler2.add Doc (DirectUpdateHandler2.java:220) на org.apache.solr.update.processor.RunUpdateProcessor.processAdd (RunUpdateProcessorFactory.java:61) на org.apache.solr.handler.XMLLoader.processUpdate (XMLLoader.java:139) at org.apache.solr.handler.XMLLoader.load (XMLLoader.java:69) at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:54) at org.apache.solr.handler. RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) at org.apache.solr.core.SolrCore.execute (SolrCore.java:1316) at org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFilter.java:338) на org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:241) на или g.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve. вызывать (StandardWrapperValve.java:233) на org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) в 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) at org.apache.catalina.ha.t cp.ReplicationValve.invoke (ReplicationValve.java:347) at org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293) at org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java: 190) at org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:291) at org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:769) at org.apache.jk. common.ChannelSocket.processConnection (ChannelSocket.java:698) at org.apache.jk.common.ChannelSocket $ SocketConnection.runIt (ChannelSocket.java:891) at org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable. run (ThreadPool.java:690) at java.lang.Thread.run (Thread.java: 619)

ответ

1

Я очень не уверен, но в этой теме

http://www.mail-archive.com/[email protected]/msg08048.html

они рекомендуют использовать

<unlockOnStartup>true</unlockOnStartup> 

и

<lockType>simple</lockType> 

Я думаю, что это должно быть в безопасности, пока вы получаете доступ к индексу через solr или solrj (хотя не lucene!).

Любые другие идеи?

+0

Где это True и просто должны быть добавлены к весенней загрузке? –

0

Клиент SolrJ не дает вам фактической ошибки. Попробуйте просмотреть журналы solr-сервера, которые должны быть расположены под tomcat или причал (или что-то другое).

5

У меня есть следующее в моем файле solrconfig.xml, и он работает.

<lockType>simple</lockType> 
<unlockOnStartup>true</unlockOnStartup> 

Кроме того, установлено следующее, чтобы избежать исключения блокировки записи на каталог индекса:

<maxFieldLength>10000</maxFieldLength> 
<writeLockTimeout>60000</writeLockTimeout> 
<commitLockTimeout>60000</commitLockTimeout> 
+0

Хотя это кажется правдой, '' 'unlockOnStartup''', похоже, предполагает, что вы не блокируете, а установка тайм-аутов не должна иметь никакого эффекта. По крайней мере, на основе документации в файле solrconfig.xml – brutuscat

+0

https://cwiki.apache.org/confluence/display/solr/IndexConfig+in+SolrConfig: параметр MaxFieldLength был удален в Solr 4. Если ограничение длины полей равно Для вас важна аналогичная ситуация с LimitTokenCountFactory, которая может быть определена для полей, которые вы хотите ограничить. Например, ограничивает поле значением 10 000 символов. [/ Code] –

0

Похоже коррумпированной индекс или занят файл блокировки .. У меня было что-то подобное и повторного запуска работал, как ни странно.

0

Это происходит из-за невозможности удалить файл write.lock после некоторых действий по обновлению. Удаление write.lock в папке данных/индекса ядра поможет решить эту проблему временно и восстановить действие обновления. Я знаю, что использование post.jar для обновления имеет больше неудач, чтобы вызвать эту проблему, тогда как URL-адрес с stream.body редко вызывает эту проблему. Ответ Каруселя улучшил ситуацию, но, похоже, ее вообще не решает. Я сомневаюсь, что это связано с проблемой дизайна Solr. Hope Solr 4 решил эту проблему. Также можно обратиться к ответу на этот вопрос: how-to-solve-the-lock-obtain-timed-out-when-using-solr-plainly

Смежные вопросы