I´ll have a look to Solr source code and try to fix the bug. If I succeed
I´ll update JIRA issue with it, :-)


2012/11/15 Sami Siren <ssi...@gmail.com>

> Actually it seems that xml/binary request writers only behave differently
> when using array[] as the value. if I use ArrayList it also works with the
> xml format (4.1 branch). Still it's annoying that the two request writers
> behave differently so I guess it's worth adding the jira anyway.
>
> The Affects version should be 4.0.
>
>
> On Thu, Nov 15, 2012 at 1:42 PM, Luis Cappa Banda <luisca...@gmail.com
> >wrote:
>
> > Hello, Sami.
> >
> > It will be the first issue that I open so, should I create it under Solr
> > 4.0 version or in Solr 4.1.0 one?
> >
> > Thanks,
> >
> > - Luis Cappa.
> >
> > 2012/11/15 Sami Siren <ssi...@gmail.com>
> >
> > > On Thu, Nov 15, 2012 at 11:51 AM, Luis Cappa Banda <
> luisca...@gmail.com
> > > >wrote:
> > >
> > > > Thread update:
> > > >
> > > > When I use a simple:
> > > >
> > > > *Map operation = new HashMap();*
> > > >
> > > >
> > > > Instead of:
> > > >
> > > > *Map<String, List<String>> operation = new HashMap<String,
> > > > List<String>>();*
> > > >
> > > >
> > > > The result looks better, but it´s still wrong:
> > > >
> > > > fieldName: [
> > > > "[Value1, Value2]"
> > > > ],
> > > >
> > > >
> > > > However,  List<String> value is received as a simple String "[Value1,
> > > > Value2]". In other words, SolrJ is internally executing a toString()
> > > > operation to the List<Sring>. Is impossible to update atomically a
> > > > multivalued field with a List of values in just one atomic update
> > > > operation?
> > > >
> > >
> > > Seems to be working fine here with HttpSolrServer /
>  BinaryRequestWriter;
> > >
> > >     HashMap editTags = new HashMap();
> > >     editTags.put("set", new String[]{"tag1","tag2","tag3"});
> > >     doc = new SolrInputDocument();
> > >     doc.addField("id", "unique");
> > >     doc.addField("tags_ss", editTags);
> > >     server.add(doc);
> > >     server.commit(true, true);
> > >     resp = server.query(q);
> > >
> > System.out.println(resp.getResults().get(0).getFirstValue("tags_ss"));
> > >
> > > prints "tag1"
> > >
> > > ArrayList<String> as a value works the same way as String[].
> > >
> > > When using xml (RequestWriter) I can see the problem that you are
> > > describing, can you add a jira for that?
> > >
> > > --
> > >  Sami SIren
> > >
> > >
> > >
> > >
> > >
> > > >
> > > > Regards,
> > > >
> > > >
> > > > - Luis Cappa.
> > > >
> > > > 2012/11/15 Luis Cappa Banda <luisca...@gmail.com>
> > > >
> > > > > Hello everyone,
> > > > >
> > > > > I´ve tested atomic updates via Ajax calls and now I´m starting with
> > > > atomic
> > > > > updates via SolrJ... but the way I´m proceeding doesn´t seem to
> work
> > > > well.
> > > > > Here is the snippet:
> > > > >
> > > > > *SolrInputDocument do = ne SolrInputDocument();*
> > > > > *doc.addField("id", "myId");*
> > > > > *
> > > > > *
> > > > > *Map<String, List<String>> operation = new HashMap<String,
> > > > > List<String>>();*
> > > > > *operation.put("set", [[a list of String elements]]);  // I want a
> > set
> > > > > operation to override field values.*
> > > > > *doc.addField("fieldName", operation);*
> > > > > *
> > > > > *
> > > > > *cloudSolrServer.add(doc); // Atomic update operation.*
> > > > >
> > > > >
> > > > > And after updating the resultant doc is as follows:
> > > > >
> > > > > *doc: {*
> > > > > *
> > > > > *
> > > > > *...*
> > > > > *
> > > > > *
> > > > > *fieldName: [ "{set=values}"*
> > > > > *],*
> > > > > *
> > > > > *
> > > > > *...*
> > > > >
> > > > > *
> > > > > *
> > > > >
> > > > > *}*
> > > > >
> > > > > In other words, the map which includes the "set" operation and the
> > > field
> > > > > values is String formatted and that String is used to update the
> > field,
> > > > :-/
> > > > >
> > > > > What is the correct way to update just one or more fields with
> SolrJ?
> > > > >
> > > > >
> > > > > Regards,
> > > > >
> > > > > --
> > > > >
> > > > > - Luis Cappa
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > >
> > > > - Luis Cappa
> > > >
> > >
> >
> >
> >
> > --
> >
> > - Luis Cappa
> >
>



-- 

- Luis Cappa

Reply via email to