Naoto Minami created SOLR-16289:
-----------------------------------

             Summary: [interleaving] transformer does not work in SolrCloud
                 Key: SOLR-16289
                 URL: https://issues.apache.org/jira/browse/SOLR-16289
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
          Components: contrib - LTR
    Affects Versions: 9.0
            Reporter: Naoto Minami


In SolrCloud, two-stage shard requests are processed. The first stage is to 
execute the query return unique keys and scores of documents. Then, in the 
second stage, collect fields’ values of merged top documents. 
LTRInterleavingTransformerFactory should be run in the first stage 
(ResponseBuilder.STAGE_EXECUTE_QUERY), because the LTRInterleavingScoringQuery 
knows which model is used in scoring. However, it’s run in second 
stage(ResponseBuilder.STAGE_GET_FIELDS) and LTRInterleavingRescorer#rescore is 
skipped in second stage. LTRInterleavingTransformerFactory cannot handle this 
case, so thrown NullPointerException when fl=[interleaving] is specified in 
SolrCloud. There is a same problem in LTRFeatureLoggerTransformerFactory. But, 
if interleaving is not used, LTRFeatureLoggerTransformerFactory falls back when 
feature vector cache is not hit (i.e. in second stage).

I will fix the NullPointerException problem, but the underlying solution should 
be discussed. One of the solution of this problem is disable two-stage request 
by distrib.singlePass=true parameter.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org
For additional commands, e-mail: issues-h...@solr.apache.org

Reply via email to