[ https://issues.apache.org/jira/browse/SOLR-1357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12788664#action_12788664 ]
Jean Baptiste Pionnier commented on SOLR-1357: ---------------------------------------------- Thank you very much Noble. My name is missing in changes.txt :-) Thanks Noble. > SolrInputDocument cannot process dynamic fields > ----------------------------------------------- > > Key: SOLR-1357 > URL: https://issues.apache.org/jira/browse/SOLR-1357 > Project: Solr > Issue Type: Improvement > Components: clients - java > Reporter: Avlesh Singh > Assignee: Noble Paul > Attachments: SOLR-1357.patch, SOLR-1357.patch > > > Adding data via {{SolrInputDocument}} is normally done by calling the > {{addField}} method with a field name, field value and an optional boost. In > case of dynamic fields, if field names are known upfront, then caller of this > method just passes in the right name and it automatically works. > This does not go well with users who use {...@interface Field}} annotations > for automatic binding. > As of SOLR-1129, users can annotate {{Map<String, String> propertyName}} with > {...@field ("field_*")}} kind of annotations to bind dynamic field data to. > {{SolrInputDocument}} should exhibit the same behavior. The field {{value}} > currently supported are - primitive, array, collection or an instance of > Iterable. It can also take {{Map}} as values. If the field, for which > {{addField}} method is called, is of dynamicField type (which can be derived > from the field name), then the keys of the {{Map}}, passed as value, should > be used to "compose" the correct field name. > This should be supported > {code:java} > //This code sample should populate the dynamic fields "brands_Nokia" and > "brands_Samsung" > public class MyBean{ > @Field("brands_*) > Map<String, Integer> brands; > > ... > } > Map<String, String> brands= new HashMap<String, String>(); > brands.put("Nokia", 1000); > brands.put("Samsung", 100); > MyBean myBean = new MyBean(); > myBean.setBrands(brands); > solrServer.addBean(myBean); > {code} > We can think of supporting this too ... > {code:java} > //This code sample should populate the dynamic fields "brands_Nokia" and > "brands_Samsung" > Map<String, String> brands= new HashMap<String, String>(); > brands.put("Nokia", 1000); > brands.put("Samsung", 100); > SolrInputDocument doc = new SolrInputDocument(); > doc.addField("brands_*", brands); > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.