[
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.