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

Dan Brown updated SOLR-1666:
----------------------------

    Attachment: SOLR-1666.patch

Attaching patch that checks whether the value is a String[].  If so, add each 
element of the string to the map.  Otherwise, behave as before.
                
> SolrParams conversion to NamedList and back to SolrParams misses the Arrays 
> with more than one value
> ----------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-1666
>                 URL: https://issues.apache.org/jira/browse/SOLR-1666
>             Project: Solr
>          Issue Type: Bug
>          Components: search
>    Affects Versions: 1.3, 1.4
>            Reporter: Nestor Oviedo
>            Priority: Minor
>         Attachments: SOLR-1666.patch
>
>
> When a parameter in a SolrParams instance is an Array that has more than one 
> element, the method SolrParams.toNamedList() generates a NamedList<Object> 
> correctly, but when the method SolrParams.toSolrParams() is invoked with that 
> NamedList instance, the resultant SolrParams instance has that parameter as a 
> String, wich is the result of the String[].toString() method.
> TestCase:
> {code}
> public class TestDismaxQParserPlugin extends DisMaxQParserPlugin {
>       private Log log = LogFactory.getLog(this.getClass());
>       public QParser createParser(String qstr, SolrParams localParams, 
> SolrParams params, SolrQueryRequest req) {
>               // TestCase with the param facet.field
>               if(params.getParams(FacetParams.FACET_FIELD) != null) {
>                       // Original Values
>                       log.debug("FACET.FIELD Param - Before");
>                       String[] facetFieldBefore = 
> params.getParams(FacetParams.FACET_FIELD);
>                       log.debug("toString():"+facetFieldBefore.toString());
>                       log.debug("length:"+facetFieldBefore.length);
>                       log.debug("Elements:");
>                       for(String value : facetFieldBefore) 
>                               log.debug("[class 
> "+value.getClass().getName()+"] "+value);
>                       
>                       // Transforming
>                       NamedList<Object> paramsList = params.toNamedList();
>                       params = SolrParams.toSolrParams(paramsList);
>                       // Result Values
>                       log.debug("FACET.FIELD Param - After");
>                       String[] facetFieldAfter = 
> params.getParams(FacetParams.FACET_FIELD);
>                       log.debug("toString():"+facetFieldAfter.toString());
>                       log.debug("length:"+facetFieldAfter.length);
>                       log.debug("Elements:");
>                       for(String value : facetFieldAfter) 
>                               log.debug("[class 
> "+value.getClass().getName()+"] "+value);
>               } else {
>                       log.debug("FACET.FIELD NOT SPECIFIED");
>               }
>               return super.createParser(qstr, localParams, params, req);
>       }
> }
> {code}
> Editing the solrconfig.xml file for this QueryParser to be used and using an 
> URL like 
> "http://host:port/path/select?q=something&facet=true&facet.field=subject&facet.field=date";
>  the output is (only the interesting lines):
> FINA: FACET.FIELD Param - Before
> FINA: toString():[Ljava.lang.String;@c96ad7c
> FINA: length:2
> FINA: Elements:
> FINA: [class java.lang.String] subject
> FINA: [class java.lang.String] date
> FINA: FACET.FIELD Param - After
> FINA: toString():[Ljava.lang.String;@44775121
> FINA: length:1
> FINA: Elements:
> FINA: [class java.lang.String] [Ljava.lang.String;@c96ad7c

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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

Reply via email to