lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuki Yano (JIRA)" <>
Subject [jira] [Commented] (SOLR-11164) OriginalScoreFeature causes NullPointerException during feature logging with SolrCloud mode.
Date Mon, 14 Aug 2017 05:10:01 GMT


Yuki Yano commented on SOLR-11164:

[~cpoerschke] [~Jonathan GV] [~ryac]
I investigated these issues and found that {{score=0.0}} has special meaning for {{DocTransformer}}.

In SolrCloud, scores are calculated in the first-trip and score fields are filled after the
second-trip by the distributed node.

By this reason, in the second-trip, {{DocSlice}} is created with empty scores.

While transforming documents, scores of {{DocSlice}} is referred by {{DocStreamer}} and set
{{0.0}} if scores are missing.

Because {{DocSlice}} doesn't have scores, 0.0 is always passed to {{DocTransformer#transform}}
as the score. Without {{rq}} parameter, {{docsWereNotReranked=true} and this causes the issue
reported in [SOLR-11180|] and [SOLR-11220|].

In conclusion, there are two problems with transforming {{OriginalScoreFeature}} in SolrCloud

1. Without {{rq}}, {{OriginalScoreFeature}} always returns 0.0 because the correct score isn't
passed to {{DocTransformer#transform}}.

2. With {{rq}}, {{FeatureTransformer}} causes NPE because the original query isn't set correctly
in {{LTRScoringQuery}}.

> OriginalScoreFeature causes NullPointerException during feature logging with SolrCloud
> --------------------------------------------------------------------------------------------
>                 Key: SOLR-11164
>                 URL:
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: contrib - LTR
>    Affects Versions: 6.6
>            Reporter: Yuki Yano
>         Attachments: SOLR-11164.patch, SOLR-11164.patch
> In FeatureTransfer, OriginalScoreFeature uses original Query instance preserved in LTRScoringQuery
for the evaluation.
> This query is set in RankQuery#wrap during QueryComponent#process.
> With SolrCloud mode, document searches take two steps: finding top-N document ids, and
filling documents of found ids.
> In this case, FeatureTransformer works in the second step and tries to extract features
with LTRScoringQuery built in QueryComponent#prepare.
> However, because the second step doesn't call QueryComponent#process, the original query
of LTRScoringQuery remains null and this causes NullPointerException while evaluating OriginalScoreFeature.
> We can get the original query from ResultContext which is an argument of DocTransformer#setContext,
thus this problem can solve by using it if LTRScoringQuery doesn't have correct original query.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message