[ https://issues.apache.org/jira/browse/SOLR-3814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Yonik Seeley resolved SOLR-3814. -------------------------------- Resolution: Duplicate This has already been fixed via SOLR-3743 > Partial document update silently breaks multi-valued constraint > --------------------------------------------------------------- > > Key: SOLR-3814 > URL: https://issues.apache.org/jira/browse/SOLR-3814 > Project: Solr > Issue Type: Bug > Components: update > Affects Versions: 4.0-BETA > Environment: windows xp, java 6 or 7 > Reporter: Yoni Amir > > 1) Download the tutorial, start solr, and post to it the file solr.xml as > explained in the tutorial. > 2) query *:* and verify that you have one document in solr with id SOLR1000 > 3) copy the xml file and create a partial update command for that document. I > used something like this: > <add> > <doc> > <field name="id">SOLR1000</field> > <field name="manu" update="set">new value</field> > </doc> > </add> > 4) Post this document to solr. It will succeed. > 5) Query *:* again, and you will notice something strange. There is still one > document, but in the results the field price_c appears twice, even though it > is not a multi-valued field. > <result name="response" numFound="1" start="0"> > <doc> > <str name="id">SOLR1000</str> > ... > <float name="price">0.0</float> > <arr name="price_c"> > <str>0.0,USD</str> > <str>0,USD</str> > </arr> > </doc> > </result> > 6) change the value in the xml that you just sent (e.g. "new value2") and > post it again to solr. Now solr throws an exception: > SEVERE: org.apache.solr.common.SolrException: ERROR: [doc=SOLR1000] multiple > values encountered for non multiValued field price_c > : [0.0,USD, 0,USD] > at > org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:242) > at > org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:76) > at > org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:208) > at > org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) > at > org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:414) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:535) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:315) > at > org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:100) > at > org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:230) > at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:157) > 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:129) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1656) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:454) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:275) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1337) > I am trying to use the partial update feature in my current project, and this > is a showstopper for us right now. > Thanks, > Yoni -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org