Hello,
I have a custom component which depends on the ordering of a multi-valued
parameter. Unfortunately it looks like the values do not come back in the same
order as they were put in the URL. Here is some code to explain the behavior:
URL: /solr/my_custom_handler?q=something&myparam=foo&myparam=bar&myparam=baz
Inside my component's process(ResponseBuilder) method, I do the following:
public void process(ResponseBuilder rb) throws IOException {
String[] myparams = rb.req.getParams().getParams("myparam");
System.out.println("myparams=" + ArrayUtils.toString(myparams);
...
}
and I notice that the values are ordered differently than ["foo", "bar", "baz"]
that I would have expected. I am guessing its because the SolrParams is a
MultiMap structure, so order is destroyed on its way in.
My question is:
1) is there a setting in Solr can use to enforce ordering of multi-valued
parameters? I suppose I could use a single parameter with comma-separated
values, but its a bit late to do that now...
2) is it possible to use a specific SolrParams object that preserves order? If
so how?
3) is it possible to get a reference to the HTTP request object from within a
component? If so how?
I am on Solr version 3.2.0.
Thanks in advance for any help you can provide,
Sujit