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 Jean-Claude Dauphin <jc...@gmail.com> on 2011/09/27 18:33:50 UTC

payloads - Inconsistency between the document score and the explain score

Hello,



I have implemented payloads at the index and query levels using  specific
PayloadSimilarity  and  PayloadQparserPlugin classes.

Now I wish to check that the payloads processing is correct and thus I
inserted the following code to check the document scores of a Solr request:



     // Display relevance score and explain for debugging and validation

      Iterator<SolrDocument> dociterator = results.iterator();

      Map<String, String> explainmap = queryResponse.getExplainMap();



        *while* (dociterator.hasNext()) {

          SolrDocument doc = dociterator.next();

          String id = (String) doc.getFirstValue("positionID");

          Float relevance = (Float) doc.getFieldValue("score");

          String explanation = explainmap.get(id);

          *LOGGER*.debug("----positionID [{}]", id);

          *LOGGER*.debug("Score [{}]", relevance);

          *LOGGER*.debug("explain: [{}]", explanation);

        }



Here is an extract from the output:



----positionID [441828]

websearch.engine.solr.SolrEnginePosition (1291) Score [6.0416665]

websearch.engine.solr.SolrEnginePosition (1292) explain: [

0.34901428 = (MATCH) product of:

  0.41881716 = (MATCH) sum of:

    0.08182812 = (MATCH) weight(autocomplete-field:chef de projet in 363),
product of:

      0.35501713 = queryWeight(autocomplete-field:chef de projet), product
of:

        3.4769385 = idf(autocomplete-field:  chef de projet=83)

        0.10210624 = queryNorm

      0.23049062 = (MATCH) fieldWeight(autocomplete-field:chef de projet in
363), product of:

        0.70710677 = (MATCH) btq, product of:

          0.70710677 = tf(phraseFreq=0.5)

          1.0 = scorePayload(...)

        3.4769385 = idf(autocomplete-field:  chef de projet=83)

        0.09375 = fieldNorm(field=autocomplete-field, doc=363)



THE EXPLAIN SCORE SEEMS CORRECT BUT I DON’T UNDERSTAND WHY THE DOCUMENT
SCORE (6.0416665) IS DIFFERENT FROM THE EXPLAIN SCORE (0.34901428)



I would appreciate any explanation on this issue or any ideas on what could
be wrong in the code

Best wishes,

-- 
Jean-Claude Dauphin

Re: payloads - Inconsistency between the document score and the explain score

Posted by Robert Muir <rc...@gmail.com>.
https://issues.apache.org/jira/browse/LUCENE-3421

Note: if you are using this 'includeSpanScore=false' (which I think
you are, as thats where the bug applies), be aware this means the
score is *only* the result of your payload, boosts, tf, length
normalization, idf, none of this is incorporated into the score.

On Tue, Sep 27, 2011 at 12:33 PM, Jean-Claude Dauphin
<jc...@gmail.com> wrote:
> Hello,
>
>
>
> I have implemented payloads at the index and query levels using  specific
> PayloadSimilarity  and  PayloadQparserPlugin classes.
>
> Now I wish to check that the payloads processing is correct and thus I
> inserted the following code to check the document scores of a Solr request:
>
>
>
>     // Display relevance score and explain for debugging and validation
>
>      Iterator<SolrDocument> dociterator = results.iterator();
>
>      Map<String, String> explainmap = queryResponse.getExplainMap();
>
>
>
>        *while* (dociterator.hasNext()) {
>
>          SolrDocument doc = dociterator.next();
>
>          String id = (String) doc.getFirstValue("positionID");
>
>          Float relevance = (Float) doc.getFieldValue("score");
>
>          String explanation = explainmap.get(id);
>
>          *LOGGER*.debug("----positionID [{}]", id);
>
>          *LOGGER*.debug("Score [{}]", relevance);
>
>          *LOGGER*.debug("explain: [{}]", explanation);
>
>        }
>
>
>
> Here is an extract from the output:
>
>
>
> ----positionID [441828]
>
> websearch.engine.solr.SolrEnginePosition (1291) Score [6.0416665]
>
> websearch.engine.solr.SolrEnginePosition (1292) explain: [
>
> 0.34901428 = (MATCH) product of:
>
>  0.41881716 = (MATCH) sum of:
>
>    0.08182812 = (MATCH) weight(autocomplete-field:chef de projet in 363),
> product of:
>
>      0.35501713 = queryWeight(autocomplete-field:chef de projet), product
> of:
>
>        3.4769385 = idf(autocomplete-field:  chef de projet=83)
>
>        0.10210624 = queryNorm
>
>      0.23049062 = (MATCH) fieldWeight(autocomplete-field:chef de projet in
> 363), product of:
>
>        0.70710677 = (MATCH) btq, product of:
>
>          0.70710677 = tf(phraseFreq=0.5)
>
>          1.0 = scorePayload(...)
>
>        3.4769385 = idf(autocomplete-field:  chef de projet=83)
>
>        0.09375 = fieldNorm(field=autocomplete-field, doc=363)
>
>
>
> THE EXPLAIN SCORE SEEMS CORRECT BUT I DON’T UNDERSTAND WHY THE DOCUMENT
> SCORE (6.0416665) IS DIFFERENT FROM THE EXPLAIN SCORE (0.34901428)
>
>
>
> I would appreciate any explanation on this issue or any ideas on what could
> be wrong in the code
>
> Best wishes,
>
> --
> Jean-Claude Dauphin
>



-- 
lucidimagination.com