I apologize, entering the defType parameter explicitly has nothing to do with it, this was a caching issue. I tested the different configurations thoroughly, and this is what I've come up with:
- When using 'dismax' request handler as default: - Queries are always parsed using the dismax parser, whether I use qt=standard, qt=dismax, or qt=. It _does_ use the correct request handler, because the echo'd params are correct for that handler. However, it seems to always be using defType=dismax. I can tell this because when I use the parameter debugQuery=true, I can see that it is creating a DisjunctionMaxQuery. - When using 'standard' request handler as default: - The behaviour is as expected. When I enter no qt parameter or qt=standard, it uses the standard request handler and doesn't use dismax for the defType. When I use qt=dismax, it uses the dismax request handler and dismax for the defType. So the problem is when setting the default request handler to dismax, it always uses defType=dismax (even though it uses the 'standard' request handler). defType=dismax does not show up in the echo'd parameters, but I can tell by using debugQuery=true (and the fact that I get no results when I specify a field). Can someone try reproducing this using the configuration I specified in my first post? Sorry again for being confusing, I got sidetracked by the caching issue. Mark On Tue, Jan 6, 2009 at 3:01 PM, Mark Ferguson <mark.a.fergu...@gmail.com>wrote: > It seems that the problem is related to the defType parameter. When I > specify defType=, it uses the correct request handler. It seems that it is > using the correct request handler, but it is defaulting to defType=dismax, > even though I have not specified that parameter in the standard request > handler configuration. > > > On Tue, Jan 6, 2009 at 2:57 PM, Mark Ferguson > <mark.a.fergu...@gmail.com>wrote: > >> Hi, >> >> In my solrconfig.xml file there are two request handlers configured: one >> uses defType=dismax, and the other doesn't. However, it seems that when the >> dismax request handler is set as my default, I have no way of using the >> standard request handler . Here is the relevant part of my solrconfig.xml: >> >> <requestHandler name="standard" class="solr.SearchHandler"> >> <!-- default values for query parameters --> >> <lst name="defaults"> >> <str name="echoParams">explicit</str> >> </lst> >> </requestHandler> >> >> <requestHandler name="dismax" class="solr.SearchHandler" default="true"> >> <lst name="defaults"> >> <str name="defType">dismax</str> >> <str name="echoParams">explicit</str> >> </lst> >> </requestHandler> >> >> >> When I run a query with the parameters qt=standard&debugQuery=true, I can >> see that it is still using the DismaxQueryParser. There doesn't seem to be >> any way to use the standard request handler. >> >> On the other hand, when I set the standard request handler as my default, >> the behaviour is equally strange. When I specify no qt parameter at all, it >> uses the standard request handler as it should. However, when I enter either >> qt=standard or qt=dismax, it uses the dismax request handler! >> >> So it appears that the only way I can choose the request handler I want is >> to make the standard request handler my default, then specify no qt >> parameter if I want to use it. Has anyone else tried this? >> >> Mark >> > >