Hi Erick, The name field is stored. I experience problem only when I update multiValued field with multiple values like, * <field name="skills" update="set">solr</field>* * <field name="skills" update="set">lucene</field>* * * It works perfect, when I set single value for multiValued field like, *<field name="skills" update="set">solr</field>*
Thanks, Dikchant On Wed, Dec 19, 2012 at 6:25 PM, Erick Erickson <erickerick...@gmail.com>wrote: > FIrst question: Is the "name" field stored (stored="true")? If it isn't, > that would explain your problems with that field. _all_ relevant fields > (i.e. everything not a destination of a copyField) need to be stored for > atomic updates to work. > > Your second problem I'm not sure about. I remember some JIRAs about > multivalued fields and atomic updates, you might get some info from the > JIRAs here: https://issues.apache.org/jira/browse/SOLR > > but updating multiValued fields _should_ work... > > Best > Erick > > > On Tue, Dec 18, 2012 at 2:20 AM, Dikchant Sahi <contacts...@gmail.com > >wrote: > > > Hi, > > > > Does Solr 4.0 allows to update the values of multi-valued field? Say I > have > > list of values for skills field like java, j2ee and i want to change it > > to solr, lucene. > > > > I was trying to play with atomic updates and below is my observation: > > > > I have following document in my index: > > <doc> > > <str name="id">1</str> > > <str name="name">Dikchant</str> > > <str name="profession">software engineer</str> > > <arr name="skills"> > > <str>java</str> > > <str>j2ee</str> > > </arr> > > </doc> > > > > To update the skills to solr, lucene, I indexed document as follows: > > > > *<add>* > > * <doc>* > > * <field name="id">1</field>* > > * <field name="skills" update="set">solr</field>* > > * <field name="skills" update="set">lucene</field>* > > * </doc>* > > *</add>* > > > > The document added to index is as follows: > > *<doc>* > > * <str name="id">1</str>* > > * <arr name="skills">* > > * <str>{set=solr}</str>* > > * <str>{set=lucene}</str>* > > * </arr>* > > *</doc>* > > > > This is not what I was looking for. I found 2 issues: > > 1. The value of name field was lost > > 2. The skills fields had some junks like *{set=solr}* > > * > > * > > * > > * > > Then, to achieve my goal, I tried something different. I tried setting > some > > single valued field with update="set" parameter to the same value and > also > > provided the values of multi-valued field as we do while adding new > > document. > > <add> > > <doc> > > <field name="id">1</field> > > *<field name="name" update="set">Dikchant</field>* > > <field name="skills">solr</field> > > <field name="skills">lucene</field> > > </doc> > > </add> > > > > With this the index looks as follows: > > <doc> > > <str name="id">1</str> > > <str name="name">Dikchant</str> > > <str name="profession">software engineer</str> > > <arr name="skills"> > > <str>solr</str> > > <str>lucene</str> > > </arr> > > </doc> > > > > The values of multivalued field is changed and value of other field is > not > > deleted. > > > > The question that comes to my mind is, does Solr 4.0 allows update of > > multi-valued field? if yes, is this how it works or am I doing something > > wrong? > > > > Regards, > > Dikchant > > >