Additive scoring using Dismax...

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Additive scoring using Dismax...

escher2k
I am trying to search across multiple fields using the AND operator. Somehow, when the results
are returned, the score seems to be retrieving the max value and not really adding them up. In
the example given below, the value that is returned (825) is really the max instead of what
I was expecting (1597.5 = 22.5 + 825 + 150 + 600).  

Is there any way to get the additive effect ? I thought using AND would do it. Thanks a lot.

Relevant section of schema.xml:
 <uniqueKey>uniq_id</uniqueKey>
 <defaultSearchField>skills</defaultSearchField>
 <solrQueryParser defaultOperator="AND"/>
 <similarity class="ProviderSimilarity"/>

Results for a given field:
<str name="id=300723_1843624_10183,internal_docid=36638">
825.0 = (MATCH) sum of: 825.0 = (MATCH) max of:
22.5 = (MATCH) fieldWeight(dtl_svc_descr:php in 36638), product of: 15.0 = tf(termFreq(dtl_svc_descr:php)=1) 1.0 = idf(docFreq=9473) 1.5 = fieldNorm(field=dtl_svc_descr, doc=36638)
825.0 = (MATCH) fieldWeight(past_proj_descr:php in 36638), product of: 550.0 = tf(termFreq(past_proj_descr:php)=17) 1.0 = idf(docFreq=827) 1.5 = fieldNorm(field=past_proj_descr, doc=36638)
150.0 = (MATCH) fieldWeight(tagline:php in 36638), product of: 100.0 = tf(termFreq(tagline:php)=1) 1.0 = idf(docFreq=881) 1.5 = fieldNorm(field=tagline, doc=36638)
600.0 = (MATCH) fieldWeight(past_proj_name:php in 36638), product of: 400.0 = tf(termFreq(past_proj_name:php)=5) 1.0 = idf(docFreq=301) 1.5 = fieldNorm(field=past_proj_name, doc=36638)
</str> 
Reply | Threaded
Open this post in threaded view
|

Re: Additive scoring using Dismax...

Mike Klaas
On 4/26/07, escher2k <[hidden email]> wrote:

>
> I am trying to search across multiple fields using the AND operator. Somehow,
> when the results
> are returned, the score seems to be retrieving the max value and not really
> adding them up. In
> the example given below, the value that is returned (825) is really the max
> instead of what
> I was expecting (1597.5 = 22.5 + 825 + 150 + 600).
>
> Is there any way to get the additive effect ? I thought using AND would do
> it. Thanks a lot.

AND does not controll scoring, only matching.  If you want dismax to
be purely additive, pass tie=1.0 to the handler.

-Mike
Reply | Threaded
Open this post in threaded view
|

Re: Additive scoring using Dismax...

Chris Hostetter-3

: AND does not controll scoring, only matching.  If you want dismax to
: be purely additive, pass tie=1.0 to the handler.

more specificly: the defaultOperator option in the schema.xml does not
affect the dismax parser used on the q param at all (only the stock
SolrQueryParser used for things like the the fq and bq params)



-Hoss