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: [email protected]
For additional commands, e-mail: [email protected]