[
https://issues.apache.org/jira/browse/SOLR-6608?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hoss Man resolved SOLR-6608.
----------------------------
Resolution: Invalid
please post questions to the solr-user@lucene mailing list for discussion &
advice before opening a bug (the user list gets a lot more eyeballs and has a
lot more people available to provide help ... we try to only open bugs once
we've confirmed something is definitely not functioning as designed/documented)
my best guess is that you modified your schema to make "cityId" a required
field *after* indexing some documents -- so you have docs in your index which
do not have a value for that field, and attempting to modify those documents
now gives you an error because it can not do so in a way that will satisfied
the required="true" condition
impossible to know for sure since you didn't show us what the document you are
trying to update currently looks like when you execute a query.
As noted: please start a thread on the mailing list with more details like this
to get advice/help.
> Atomic update with CloudSolrServer gives 'missing required field:'
> ------------------------------------------------------------------
>
> Key: SOLR-6608
> URL: https://issues.apache.org/jira/browse/SOLR-6608
> Project: Solr
> Issue Type: Bug
> Components: SolrCloud, update
> Reporter: Guido
>
> Dear support,
> My version of Solr is 4.8.0. I am trying to update a single field of a
> document which is already present inside my collection. This is the part of
> code involved:
> _CloudSolrServer server = new CloudSolrServer(args[0]);_
> _server.setDefaultCollection(args[1]);_
> [...]
> _SolrInputDocument updateSolrDoc = new SolrInputDocument();_
> _String id = [...]_
> _updateSolrDoc.addField("id", id);_
> _List<String> phoneNumbers = [...]_
> _updateSolrDoc.setField("phoneNumbers", Collections.singletonMap("set",
> phoneNumbers));_
> [...]
> _buffer.add(updateSolrDoc);_
> [...]
> _server.add(buffer);_
> _server.commit();_
> When I try to run it, I receive the following exception:
> 2014-10-08 15:57:40.587 - ERROR org.apache.solr.common.SolrException
> org.apache.solr.common.SolrException: [doc=1021938980] missing required
> field: cityId
> at
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:189)
> at
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:77)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:234)
> at
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:160)
> 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:704)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:858)
> at
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:557)
> at
> org.apache.solr.handler.loader.JavabinLoader$1.update(JavabinLoader.java:96)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readOuterMostDocIterator(JavaBinUpdateRequestCodec.java:166)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readIterator(JavaBinUpdateRequestCodec.java:136)
> at
> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:225)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec$1.readNamedList(JavaBinUpdateRequestCodec.java:121)
> at
> org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:190)
> at
> org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:116)
> at
> org.apache.solr.client.solrj.request.JavaBinUpdateRequestCodec.unmarshal(JavaBinUpdateRequestCodec.java:173)
> at
> org.apache.solr.handler.loader.JavabinLoader.parseAndLoadDocs(JavabinLoader.java:106)
> at
> org.apache.solr.handler.loader.JavabinLoader.load(JavabinLoader.java:58)
> 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:1952)
> at
> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:774)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
> at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
> at java.lang.Thread.run(Thread.java:744)
> This, instead, is the part of the schema.xml involved:
> _<field name="id" type="string" indexed="true" stored="true"
> required="true" />_
> [...]
> _<field name="cityId" type="string" indexed="true" stored="true"
> required="true" />_
> [...]
> _<field name="phoneNumbers" type="string" indexed="true" stored="true"
> required="false" multiValued="true" sortMissingLast="true" />_
> [...]
> _<uniqueKey>id</uniqueKey>_
> I have also another collection with a similar schema and I am using a similar
> code to perform atomic updates without issues, i.e. I don't need to specify
> all the fields marked as 'required' in order to update a single field.
> Unfortunately with this second collection I get this weird issue.
> How can I successfully update a single field without having to pass all the
> fields marked as 'required'? Can you please tell me if there is something
> wrong in the code that I am using?
> Thank you very much for your support.
> Kind Regards
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]