I am planning and building up a test system with Solr 4.0, for my eventual upgrade. I have not made a lot of progress so far, but I have come across a potential problem.

I have seen that setQueryType is being deprecated in favor of setRequestHandler, and that the recommendation now is to use handler names starting with /, and they will be used in the URL instead of /select. Further, SOLR-3161 makes it so that a qt parameter with a leading / won't work.

In order to avoid statistics inflation, I configure all testing/monitoring to use a separate handler that I call "lbcheck" (for load balancer check), using the qt parameter. The PingRequestHandler (which is what the load balancer checks every five seconds) includes qt parameter, set to lbcheck. The lbcheck handler on my broker core includes a shards.qt parameter, set to lbcheck.

If I follow the conventions as I understand them, I will be changing lbcheck to /lbcheck, but I have not found a way so far to specify a handler when using shards, or in the PingRequestHandler. The only option is qt and/or shards.qt, but apparently a leading slash will not be allowed there.

A thought that just occurred to me is to let all monitoring use the standard request handler, and configure a new request handler called /search to handle all requests from the application. By upgrading SolrJ before Solr, I can use setRequestHandler to point at the new handler, and I can even set up the new handler in Solr 3.5 before the upgrade. Does this sound at all reasonable?

I think it may be necessary to file a JIRA so that when a handler is configured to ultimately send requests to another handler (PingRequestHandler, shards, etc.), you can change from /select to /whatever. Does such a JIRA already exist?

Thanks,
Shawn

Reply via email to