You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Cassandra Targett (JIRA)" <ji...@apache.org> on 2018/01/11 20:08:00 UTC

[jira] [Updated] (SOLR-6045) atomic updates w/ solrj + BinaryRequestWriter aren't working when adding multiple fields w/ same name in a single SolrInputDocument

     [ https://issues.apache.org/jira/browse/SOLR-6045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Cassandra Targett updated SOLR-6045:
------------------------------------
    Component/s: clients - java

> atomic updates w/ solrj + BinaryRequestWriter aren't working when adding multiple fields w/ same name in a single SolrInputDocument
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-6045
>                 URL: https://issues.apache.org/jira/browse/SOLR-6045
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java
>    Affects Versions: 4.8
>         Environment: client & server both on 4.8
>            Reporter: Scott Lindner
>
> I'm using the following code snippet:
> {code}
>         HttpSolrServer srvr = new HttpSolrServer("HOST:8983/solr/foo-test");
>         SolrInputDocument sid = new SolrInputDocument();
>         sid.addField("id", "some_id");
>         Map<String, String> fieldModifier = Maps.newHashMap();
>         fieldModifier.put("set", "new_value1");
>         sid.addField("field1", fieldModifier);
>         Map<String, Object> fieldModifier2 = Maps.newHashMap();
>         fieldModifier2.put("set", "new_value2");
>         sid.addField("field1", fieldModifier2);
>         srvr.add(sid);
>         srvr.commit();
> {code}
> *NOTE*: the important part here is that I am using the same field name and adding 2 values separately to the same solr document.
> This produces the correct values in the index.  Here is the output from searching from the admin console:
> {noformat}
> "field1": [
>           "new_value1",
>           "new_value2"
>         ]
> {noformat}
> However if I modify the above code to have the following lines after creating the SolrServer:
> {code}
>         srvr.setRequestWriter(new BinaryRequestWriter());
>         srvr.setParser(new BinaryResponseParser());
> {code}
> Then the values that are returned are incorrect:
> {noformat}
> "field1": [
>           "{set=new_value1}",
>           "{set=new_value2}"
>         ]
> {noformat}
> This also behaves the same if I use the CloudSolrServer as well.
> If I modify my code to look like the following:
> {code}
>         Map<String, List<String>> fieldModifier = Maps.newHashMap();
>         fieldModifier.put("set", Lists.newArrayList("new_value1", "new_value2"));
>         sid.addField("field1", fieldModifier);
> {code}
> Then this *does* work with the BinaryRequestWriter.  So this seems to be an issue when calling addField() with the same name multiple times.
> In the process of debugging this I think I also uncovered a few other similar issues but I will file separate bugs for those.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org