[
https://issues.apache.org/jira/browse/SOLR-1666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Erick Erickson resolved SOLR-1666.
----------------------------------
Resolution: Won't Fix
2013 Old JIRA cleanup
> 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
> Assignee: Hoss Man
> 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 was sent by Atlassian JIRA
(v6.1#6144)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]