Я работаю над Solr в своем приложении. Я использую apache-solr-solrj-1.4.0.jar.
Когда я пытаюсь звонить add(SolrInputDocument doc)
от CommonsHttpSolrServer
, Я получаю следующее исключение:
org.apache.solr.common. SolrException: Внутренняя Ошибка Сервера Внутренняя Ошибка Сервера в org.apache.solr.client.solrj.impl. CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:424) в org.apache.solr.client.solrj.impl. CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243) в org.apache.solr.client.solrj.request. AbstractUpdateRequest.process(AbstractUpdateRequest.java:105) в org.apache.solr.client.solrj. SolrServer.add(SolrServer.java:64)
Кто-либо может помочь мне разрешить эту проблему?
Следующее является атрибутами в solrconfig.xml:
<lockType>native</lockType>
<unlockOnStartup>false</unlockOnStartup>
<reopenReaders>true</reopenReaders>
Я получаю следующее исключение в solr журналах сервера:
24 мая 2010 2:51:22 org.apache.solr.common. СЕРЬЕЗНЫЙ журнал SolrException: java.lang. NullPointerException в org.apache.solr.handler. ReplicationHandler$4.postCommit (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) в org.apache.solr.handler. RequestHandlerUtils.handleCommit(RequestHandlerUtils.java:107) в org.apache.solr.handler. ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:48) в 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. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) в org.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) в 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) в 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.apache.jk.common. ChannelSocket$SocketConnection.runIt (ChannelSocket.java:891) в org.apache.tomcat.util.threads. ThreadPool$ControlRunnable.run (Пул потоков java:690) в java.lang. Thread.run (Поток java:619)
ИНФОРМАЦИЯ: {} 0 1039 24 мая 2010 2:52:29 org.apache.solr.common. СЕРЬЕЗНЫЙ журнал SolrException: org.apache.lucene.store. LockObtainFailedException: Блокировка получает приведенный к таймауту: NativeFSLock @./solr/data/index/lucene-be18de26b941317e71dc59f9e5ba63c4-write.lock в org.apache.lucene.store. Lock.obtain (Блокировка java:85) в 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.update.processor. RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) в org.apache.solr.handler. XMLLoader.processUpdate (XMLLoader.java:139) в org.apache.solr.handler. XMLLoader.load (XMLLoader.java: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. ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) в org.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) в 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) в 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.apache.jk.common. ChannelSocket$SocketConnection.runIt (ChannelSocket.java:891) в org.apache.tomcat.util.threads. ThreadPool$ControlRunnable.run (Пул потоков java:690) в java.lang. Thread.run (Поток java:619)
Я очень не уверен, но в этой теме
http://www.mail-archive.com/solr-user@lucene.apache.org/msg08048.html
они рекомендуют использовать
<unlockOnStartup>true</unlockOnStartup>
и
<lockType>simple</lockType>
Я думаю, это должно быть безопасно, пока вы обращаетесь к индексу через solr или solrj (не через lucene!).
Есть другие идеи?
Клиент SolrJ не выдает фактическую ошибку. Попробуйте посмотреть журналы сервера solr, которые должны быть расположены под tomcat или jetty (или там, где работает solr).
I установили следующее в моем solrconfig.xml, и он работает.
<lockType>simple</lockType>
<unlockOnStartup>true</unlockOnStartup>
Кроме того, установите следующее, чтобы избежать исключений блокировки записи в индексном каталоге:
<maxFieldLength>10000</maxFieldLength>
<writeLockTimeout>60000</writeLockTimeout>
<commitLockTimeout>60000</commitLockTimeout>