[ https://issues.apache.org/jira/browse/SOLR-4080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13498055#comment-13498055 ]
Luis Cappa Banda edited comment on SOLR-4080 at 11/15/12 2:50 PM: ------------------------------------------------------------------ I´ve noticed that the same occurs using HttpSolrServer. However, if you set to HttpSolrServer instance the following Writers it works: HttpSolrServer solrServer = new HttpSolrServer(...); solrServer.setParser(new BinaryResponseParser()); solrServer.setRequestWriter(new BinaryRequestWriter()); I´ve tried to find a way to set those Writers via CloudServer or via LBHttpSolrServer but I found nothing. was (Author: luiscappa): I´ve noticed that the same occurrs using HttpSolrServer. However, if you set to HttpSolrServer instance the following Writers it works: HttpSolrServer solrServer = new HttpSolrServer(...); solrServer.setParser(new BinaryResponseParser()); solrServer.setRequestWriter(new BinaryRequestWriter()); I´ve tried to find a way to set those Writers via CloudServer or via LBHttpSolrServer but I found nothing. > SolrJ: CloudSolrServer atomic updates doesn´t work with Lists/Arrays > (Objects, in general). > ------------------------------------------------------------------------------------------- > > Key: SOLR-4080 > URL: https://issues.apache.org/jira/browse/SOLR-4080 > Project: Solr > Issue Type: Bug > Components: SolrCloud > Affects Versions: 4.0 > Environment: Solr 4.0 with SolrCloud deployed with two SolrServers > with shards=1. solr-solrj artifact version 4.0.0 is used to execute atomic > update operations. > Reporter: Luis Cappa Banda > > Atomic updates with a CloudServer object instance doesn´t work properly. > - Code snippet: > // CloudSolrSever instance. > LBHttpSolrServer lbSolrServer = new LBHttpSolrServer(solrEndpoints); > CloudSolrServer cloudSolrServer = new CloudSolrServer(zookeeperEndpoints, > lbSolrServer); > // SolrInputDocument to update: > 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); > // Atomic update operation. > cloudSolrServer.add(doc); > - Result: > doc: { > id: "myId", > fieldName: [ "{set=values}" > ], > ... > } > - Changing map from snippet like Map operation = new HashMap() instead of > Map<String, List<String>> operation = new HashMap<String, List<String>>() > obtains the following result after the atomic update: > doc: { > id: "myId", > fieldName: ["[Value1, Value2]" > ], > ... > } > - Also, the old value is never erased, and instead of a "set" operation an > "add" operation happens. > CONCLUSION: during an atomic update with CloudSolrServer the > List/Array/Object value passed is being processed with just a toString() > method. -- 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