You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Liram Vardi <li...@checkpoint.com> on 2014/07/30 15:25:04 UTC
Identify specific document insert error inside a solrj batch request
Hi All,
I have a question regarding the use of HttpSolrServer (SolrJ).
I have a collection of SolrInputDocuments I want to send to Solr as a batch.
Now, let's assume that one of the docs inside this collection is corrupted (missing some "required" field).
When I send the batch of docs to solr using HttpSolrServer.add(Collection< SolrInputDocument> docs) I am getting the following general exception:
"org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Server at http://172.23.3.91:8210/solr/template returned non ok status:500, message:Server Error"
When I check Solr log, I can identify exactly which is the corrupted document.
My question:
Is it possible to identify the problematic document at the client side? (for recovery purposes)
Thanks,
Liram
Re: Identify specific document insert error inside a solrj batch request
Posted by Gopal Patwa <go...@gmail.com>.
for reference implementation to Sanitize Unknown SolrFields, you can see
below link
https://github.com/cloudera/cdk/blob/master/cdk-morphlines/cdk-morphlines-solr-core/src/main/java/com/cloudera/cdk/morphline/solr/SanitizeUnknownSolrFieldsBuilder.java
On Sat, Aug 2, 2014 at 8:24 PM, Umesh Prasad <um...@gmail.com> wrote:
> Solr schema over REST https://wiki.apache.org/solr/SchemaRESTAPI
>
> https://cwiki.apache.org/confluence/display/solr/Schema+API
>
> You can use that for getting required fields and validate at client side ..
>
>
>
>
>
> On 31 July 2014 14:32, Liram Vardi <li...@checkpoint.com> wrote:
>
> > Hi Jack,
> > Thank you for your reply.
> > This is the Solr stack trace. As you can see, the missing field is
> > "hourOfDay".
> >
> > Thanks,
> > Liram
> >
> > 2014-07-30 14:27:54,934 ERROR [qtp-608368492-19] (SolrException.java:108)
> > - org.apache.solr.common.SolrException:
> > [doc=53b16126-0000-0002-2b03-17ac4d4a07b6] missing required field:
> hourOfDay
> > at
> >
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:189)
> > at
> >
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
> > at
> >
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:210)
> > at
> >
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
> > at
> >
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> > at
> >
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:556)
> > at
> >
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:692)
> > at
> >
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:435)
> > at
> >
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> > at
> >
> org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:94)
> > at
> >
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> > at
> >
> com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:152)
> > at
> >
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
> > at
> > org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
> > at
> >
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
> > at
> >
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
> > at
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
> > at
> >
> com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:248)
> > at
> >
> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:86)
> > at
> >
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:143)
> > at
> >
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:123)
> > at
> > org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:220)
> > at
> >
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:108)
> > at
> > org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:185)
> > at
> > org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:111)
> > at
> >
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:150)
> > at
> >
> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:96)
> > at
> > org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:55)
> > at
> >
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
> > at
> >
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
> > at
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
> > at
> >
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659)
> > at
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362)
> > at
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
> > at
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> > at
> >
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
> > at
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> > at
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
> > at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
> > at
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
> > at
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
> > at
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> > at
> >
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> > at
> >
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
> > at
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> > at org.eclipse.jetty.server.Server.handle(Server.java:370)
> > at
> >
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
> > at
> >
> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
> > at
> >
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
> > at
> >
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
> > at
> org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)
> >
> > -----Original Message-----
> > From: Jack Krupansky [mailto:jack@basetechnology.com]
> > Sent: Wednesday, July 30, 2014 5:53 PM
> > To: solr-user@lucene.apache.org
> > Subject: Re: Identify specific document insert error inside a solrj batch
> > request
> >
> > Agreed that this is a problem with Solr. If it was merely "bad input",
> > Solr should be returning a 4xx error.
> >
> > I don't know if we already have a Jira for this. If not, one should be
> > filed.
> >
> > There are two issues:
> >
> > 1. The status code should be 4xx with an appropriate message about "bad
> > input".
> >
> > 2. The offset of the offending document should be reported so that the
> app
> > can locate the problem to resolve it.
> >
> > Give us the actual server stack trace so we can verify whether this was
> > simply "user error" or some defect in Solr itself.
> >
> > -- Jack Krupansky
> >
> > -----Original Message-----
> > From: Liram Vardi
> > Sent: Wednesday, July 30, 2014 9:25 AM
> > To: solr-user@lucene.apache.org
> > Subject: Identify specific document insert error inside a solrj batch
> > request
> >
> > Hi All,
> >
> > I have a question regarding the use of HttpSolrServer (SolrJ).
> > I have a collection of SolrInputDocuments I want to send to Solr as a
> > batch.
> > Now, let's assume that one of the docs inside this collection is
> corrupted
> > (missing some "required" field).
> > When I send the batch of docs to solr using
> HttpSolrServer.add(Collection<
> > SolrInputDocument> docs) I am getting the following general exception:
> >
> > "org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
> > Server at http://172.23.3.91:8210/solr/template returned non ok
> > status:500,
> > message:Server Error"
> >
> > When I check Solr log, I can identify exactly which is the corrupted
> > document.
> >
> > My question:
> > Is it possible to identify the problematic document at the client side?
> > (for
> > recovery purposes)
> >
> > Thanks,
> > Liram
> >
> >
> > Email secured by Check Point
> >
>
>
>
> --
> ---
> Thanks & Regards
> Umesh Prasad
>
Re: Identify specific document insert error inside a solrj batch request
Posted by Umesh Prasad <um...@gmail.com>.
Solr schema over REST https://wiki.apache.org/solr/SchemaRESTAPI
https://cwiki.apache.org/confluence/display/solr/Schema+API
You can use that for getting required fields and validate at client side ..
On 31 July 2014 14:32, Liram Vardi <li...@checkpoint.com> wrote:
> Hi Jack,
> Thank you for your reply.
> This is the Solr stack trace. As you can see, the missing field is
> "hourOfDay".
>
> Thanks,
> Liram
>
> 2014-07-30 14:27:54,934 ERROR [qtp-608368492-19] (SolrException.java:108)
> - org.apache.solr.common.SolrException:
> [doc=53b16126-0000-0002-2b03-17ac4d4a07b6] missing required field: hourOfDay
> at
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:189)
> at
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:210)
> at
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:556)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:692)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:435)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> at
> org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:94)
> at
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
> at
> com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:152)
> at
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
> at
> org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
> at
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
> at
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
> at
> com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:248)
> at
> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:86)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:143)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:123)
> at
> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:220)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:108)
> at
> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:185)
> at
> org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:111)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:150)
> at
> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:96)
> at
> org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:55)
> at
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
> at
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
> at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
> at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> at org.eclipse.jetty.server.Server.handle(Server.java:370)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
> at
> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
> at
> org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
> at
> org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)
>
> -----Original Message-----
> From: Jack Krupansky [mailto:jack@basetechnology.com]
> Sent: Wednesday, July 30, 2014 5:53 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Identify specific document insert error inside a solrj batch
> request
>
> Agreed that this is a problem with Solr. If it was merely "bad input",
> Solr should be returning a 4xx error.
>
> I don't know if we already have a Jira for this. If not, one should be
> filed.
>
> There are two issues:
>
> 1. The status code should be 4xx with an appropriate message about "bad
> input".
>
> 2. The offset of the offending document should be reported so that the app
> can locate the problem to resolve it.
>
> Give us the actual server stack trace so we can verify whether this was
> simply "user error" or some defect in Solr itself.
>
> -- Jack Krupansky
>
> -----Original Message-----
> From: Liram Vardi
> Sent: Wednesday, July 30, 2014 9:25 AM
> To: solr-user@lucene.apache.org
> Subject: Identify specific document insert error inside a solrj batch
> request
>
> Hi All,
>
> I have a question regarding the use of HttpSolrServer (SolrJ).
> I have a collection of SolrInputDocuments I want to send to Solr as a
> batch.
> Now, let's assume that one of the docs inside this collection is corrupted
> (missing some "required" field).
> When I send the batch of docs to solr using HttpSolrServer.add(Collection<
> SolrInputDocument> docs) I am getting the following general exception:
>
> "org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
> Server at http://172.23.3.91:8210/solr/template returned non ok
> status:500,
> message:Server Error"
>
> When I check Solr log, I can identify exactly which is the corrupted
> document.
>
> My question:
> Is it possible to identify the problematic document at the client side?
> (for
> recovery purposes)
>
> Thanks,
> Liram
>
>
> Email secured by Check Point
>
--
---
Thanks & Regards
Umesh Prasad
RE: Identify specific document insert error inside a solrj batch
request
Posted by Liram Vardi <li...@checkpoint.com>.
Hi Jack,
Thank you for your reply.
This is the Solr stack trace. As you can see, the missing field is "hourOfDay".
Thanks,
Liram
2014-07-30 14:27:54,934 ERROR [qtp-608368492-19] (SolrException.java:108) - org.apache.solr.common.SolrException: [doc=53b16126-0000-0002-2b03-17ac4d4a07b6] missing required field: hourOfDay
at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:189)
at org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:73)
at org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:210)
at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
at org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:556)
at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:692)
at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:435)
at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
at org.apache.solr.update.processor.AbstractDefaultValueUpdateProcessorFactory$DefaultValueUpdateProcessor.processAdd(AbstractDefaultValueUpdateProcessorFactory.java:94)
at org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
at com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:152)
at org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:246)
at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:173)
at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
at com.checkpoint.solr_plugins.MulticoreUpdateRequestProcessor.processAdd(MulticoreUpdateRequestProcessorFactory.java:248)
at org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:86)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:143)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:123)
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:220)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:108)
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:185)
at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:111)
at org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:150)
at org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:96)
at org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:55)
at org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:957)
-----Original Message-----
From: Jack Krupansky [mailto:jack@basetechnology.com]
Sent: Wednesday, July 30, 2014 5:53 PM
To: solr-user@lucene.apache.org
Subject: Re: Identify specific document insert error inside a solrj batch request
Agreed that this is a problem with Solr. If it was merely "bad input", Solr should be returning a 4xx error.
I don't know if we already have a Jira for this. If not, one should be filed.
There are two issues:
1. The status code should be 4xx with an appropriate message about "bad input".
2. The offset of the offending document should be reported so that the app can locate the problem to resolve it.
Give us the actual server stack trace so we can verify whether this was simply "user error" or some defect in Solr itself.
-- Jack Krupansky
-----Original Message-----
From: Liram Vardi
Sent: Wednesday, July 30, 2014 9:25 AM
To: solr-user@lucene.apache.org
Subject: Identify specific document insert error inside a solrj batch request
Hi All,
I have a question regarding the use of HttpSolrServer (SolrJ).
I have a collection of SolrInputDocuments I want to send to Solr as a batch.
Now, let's assume that one of the docs inside this collection is corrupted (missing some "required" field).
When I send the batch of docs to solr using HttpSolrServer.add(Collection<
SolrInputDocument> docs) I am getting the following general exception:
"org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Server at http://172.23.3.91:8210/solr/template returned non ok status:500,
message:Server Error"
When I check Solr log, I can identify exactly which is the corrupted
document.
My question:
Is it possible to identify the problematic document at the client side? (for
recovery purposes)
Thanks,
Liram
Email secured by Check Point
Re: Identify specific document insert error inside a solrj batch request
Posted by Jack Krupansky <ja...@basetechnology.com>.
Agreed that this is a problem with Solr. If it was merely "bad input", Solr
should be returning a 4xx error.
I don't know if we already have a Jira for this. If not, one should be
filed.
There are two issues:
1. The status code should be 4xx with an appropriate message about "bad
input".
2. The offset of the offending document should be reported so that the app
can locate the problem to resolve it.
Give us the actual server stack trace so we can verify whether this was
simply "user error" or some defect in Solr itself.
-- Jack Krupansky
-----Original Message-----
From: Liram Vardi
Sent: Wednesday, July 30, 2014 9:25 AM
To: solr-user@lucene.apache.org
Subject: Identify specific document insert error inside a solrj batch
request
Hi All,
I have a question regarding the use of HttpSolrServer (SolrJ).
I have a collection of SolrInputDocuments I want to send to Solr as a batch.
Now, let's assume that one of the docs inside this collection is corrupted
(missing some "required" field).
When I send the batch of docs to solr using HttpSolrServer.add(Collection<
SolrInputDocument> docs) I am getting the following general exception:
"org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException:
Server at http://172.23.3.91:8210/solr/template returned non ok status:500,
message:Server Error"
When I check Solr log, I can identify exactly which is the corrupted
document.
My question:
Is it possible to identify the problematic document at the client side? (for
recovery purposes)
Thanks,
Liram