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