You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by mechravi25 <me...@yahoo.co.in> on 2012/04/19 13:03:42 UTC

Dismax request handler and Dismax query parser

Hi,

If I give the search string as, "type list", I want my search to match both
"type" & "list". 
The following search query which we are using 
 
/select/?qf=name%5e2.3+text+r_name%5e0.3+id%5e0.3+uid%5e0.3&fl=*&qf=name%5e2.3+text+r_name%5e0.3+id%5e0.3+uid%5e0.3&fl=*&qt=dismax&f.typeFacet.facet.mincount=1&facet.field=typeFacet&f.rFacet.facet.mincount=1&facet.field=rFacet&facet=true&hl.fl=*&hl=t
rue&rows=10&start=0&q=type+list&debugQuery=on
 
and this does not return any results.
 
But if we remove qt=dismax in the above case and replace it with
defType=dismax then, we are getting results for the same 
search string. The request Handlers used for the standard and dismax is as
follows.
 
 <requestHandler name="standard" class="solr.StandardRequestHandler"
default="true">
    
     <lst name="defaults">
       <str name="echoParams">explicit</str>
     </lst>
  </requestHandler>

 <requestHandler name="dismax" class="solr.DisMaxRequestHandler" >
    <lst name="defaults">
     <str name="defType">dismax</str>
     <str name="echoParams">explicit</str>
     <str name="fl">
        id,score
     </str>
    
     <str name="q.alt">*:*</str>
     <str name="f.name.hl.fragsize">0</str>
     <str name="f.name.hl.alternateField">name</str>
     <str name="f.text.hl.fragmenter">regex</str>
    </lst>
  </requestHandler>

Im hitting the above request query for a common core usings the shards
concept (in this case im using 2 cores to be combined in the common core).
When I use the debugQuery=On, I get the following response in the back end
(while hitting the different cores from the common core).
 
INFO: [corex] webapp=/solr path=/select
params={facet=true&qf=name^2.3+text+r_name^0.3+id^0.3+uid^0.3&q.alt=*:*&hl.fl=*&wt=javabin&hl=false&defType=dismax&rows=10&version=1&f.rFacet.facet.limit=160&fl=uid,score&start=0&f.typeFacet.facet.limit=160&q=type+list&f.text.hl.fragmenter=regex&f.name.hl.fragsize=0&facet.field=typeFacet&facet.field=rFacet&f.name.hl.alternateField=name&isShard=true&fsv=true}
hits=0 status=0 QTime=6

INFO: [corey] webapp=/solr path=/select
params={facet=true&qf=name^2.3+text+r_name^0.3+id^0.3+uid^0.3&q.alt=*:*&hl.fl=*&wt=javabin&hl=false&defType=dismax&rows=10&version=1&f.rFacet.facet.limit=160&fl=uid,score&start=0&f.typeFacet.facet.limit=160&q=type+list&f.text.hl.fragmenter=regex&f.name.hl.fragsize=0&facet.field=typeFacet&facet.field=rFacet&f.name.hl.alternateField=name&isShard=true&fsv=true}
hits=0 status=0 QTime=6

So, here I can see that defType=dismax is being used in the query string
while querying the individual cores even if we use qt=dismax on the common
core. If this is the case why is it not returing any values.
Am I missing anything?Can you guide me on this?

I ve used the defType=dismax in the default section of dismax handler
definition, but still Im not getting the required results. In Our scenario,
We would like to use Dismax request handler along with Dismax Query Parser.
Can you tell me how this can be done?

Regards,
Sivaganesh
<si...@gmail.com>


--
View this message in context: http://lucene.472066.n3.nabble.com/Dismax-request-handler-and-Dismax-query-parser-tp3922708p3922708.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Dismax request handler and Dismax query parser

Posted by Erick Erickson <er...@gmail.com>.
Right, this is often a source of confusion and there's a discussion about
this on the dev list (but the URL escapes me)..

Anyway, qt and defType have pretty much completely different meanings.
Saying "defType=dismax" means you're providing all the dismax
parameters on the URL.

Saying "qt=handlername" is looking for a handler (defined in your
solrconfig.xml)
_named_ "dismax" (e.g. <requestHandler name="handlername"
class="solr.StandardRequestHandler" >)


The fact that we used to ship the example with a requesthandler _named_
edismax makes this especially confusing.

Does that help?

Best
Erick



On Thu, Apr 19, 2012 at 7:03 AM, mechravi25 <me...@yahoo.co.in> wrote:
> Hi,
>
> If I give the search string as, "type list", I want my search to match both
> "type" & "list".
> The following search query which we are using
>
> /select/?qf=name%5e2.3+text+r_name%5e0.3+id%5e0.3+uid%5e0.3&fl=*&qf=name%5e2.3+text+r_name%5e0.3+id%5e0.3+uid%5e0.3&fl=*&qt=dismax&f.typeFacet.facet.mincount=1&facet.field=typeFacet&f.rFacet.facet.mincount=1&facet.field=rFacet&facet=true&hl.fl=*&hl=t
> rue&rows=10&start=0&q=type+list&debugQuery=on
>
> and this does not return any results.
>
> But if we remove qt=dismax in the above case and replace it with
> defType=dismax then, we are getting results for the same
> search string. The request Handlers used for the standard and dismax is as
> follows.
>
>  <requestHandler name="standard" class="solr.StandardRequestHandler"
> default="true">
>
>     <lst name="defaults">
>       <str name="echoParams">explicit</str>
>     </lst>
>  </requestHandler>
>
>  <requestHandler name="dismax" class="solr.DisMaxRequestHandler" >
>    <lst name="defaults">
>     <str name="defType">dismax</str>
>     <str name="echoParams">explicit</str>
>     <str name="fl">
>        id,score
>     </str>
>
>     <str name="q.alt">*:*</str>
>     <str name="f.name.hl.fragsize">0</str>
>     <str name="f.name.hl.alternateField">name</str>
>     <str name="f.text.hl.fragmenter">regex</str>
>    </lst>
>  </requestHandler>
>
> Im hitting the above request query for a common core usings the shards
> concept (in this case im using 2 cores to be combined in the common core).
> When I use the debugQuery=On, I get the following response in the back end
> (while hitting the different cores from the common core).
>
> INFO: [corex] webapp=/solr path=/select
> params={facet=true&qf=name^2.3+text+r_name^0.3+id^0.3+uid^0.3&q.alt=*:*&hl.fl=*&wt=javabin&hl=false&defType=dismax&rows=10&version=1&f.rFacet.facet.limit=160&fl=uid,score&start=0&f.typeFacet.facet.limit=160&q=type+list&f.text.hl.fragmenter=regex&f.name.hl.fragsize=0&facet.field=typeFacet&facet.field=rFacet&f.name.hl.alternateField=name&isShard=true&fsv=true}
> hits=0 status=0 QTime=6
>
> INFO: [corey] webapp=/solr path=/select
> params={facet=true&qf=name^2.3+text+r_name^0.3+id^0.3+uid^0.3&q.alt=*:*&hl.fl=*&wt=javabin&hl=false&defType=dismax&rows=10&version=1&f.rFacet.facet.limit=160&fl=uid,score&start=0&f.typeFacet.facet.limit=160&q=type+list&f.text.hl.fragmenter=regex&f.name.hl.fragsize=0&facet.field=typeFacet&facet.field=rFacet&f.name.hl.alternateField=name&isShard=true&fsv=true}
> hits=0 status=0 QTime=6
>
> So, here I can see that defType=dismax is being used in the query string
> while querying the individual cores even if we use qt=dismax on the common
> core. If this is the case why is it not returing any values.
> Am I missing anything?Can you guide me on this?
>
> I ve used the defType=dismax in the default section of dismax handler
> definition, but still Im not getting the required results. In Our scenario,
> We would like to use Dismax request handler along with Dismax Query Parser.
> Can you tell me how this can be done?
>
> Regards,
> Sivaganesh
> <si...@gmail.com>
>
>
> --
> View this message in context: http://lucene.472066.n3.nabble.com/Dismax-request-handler-and-Dismax-query-parser-tp3922708p3922708.html
> Sent from the Solr - User mailing list archive at Nabble.com.