"qt" param in Solr 5.5

1.6k Views Asked by At

I'm migrating solr from 4.6 version to 5.5, we have separate request handlers in which we provide query without field name, like q=book. But for select request handler, we need to pass the request with field name, like q=type:book. if i give without field name, i used to get an error "no field name specified in df", which is fine. But after migrating to 5.5, the request with different request handler also shows this error and that too only when i hit query through browser. Same query through java code works fine and also the below mentioned query is working fine: http://localhost:8983/solr/publications?q=book&wt=xml where as this doesn't work http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications.

Both the queries worked fine in solr 4 version.

Is there any change with this param? or is it mandatory to use the first request?

1

There are 1 best solutions below

1
On

If you don't specify field name with q param. solr uses default field name which can be specified for every request handler in solrconfig.xml file with df.

example:

<requestHandler name="/select" class="solr.SearchHandler">
    <!-- default values for query parameters can be specified, these
         will be overridden by parameters in the request
      -->
     <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
       <str name="df">text</str>
     </lst>
  </requestHandler>

And qt param

There is <requestDispatcher> in solrconfig.xml file which is set to false by default.

If requestDispatcher is set to true solr request

ex:http://localhost:8983/solr/select?q=book&wt=xml&qt=/publications.

above request uses "/select" say if there is no request handler by that name in your configs files. Instead of it being an error, Solr uses the "qt" parameter to lookup the handler by name