Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-16289

[interleaving] transformer does not work in SolrCloud

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Patch Available
    • Major
    • Resolution: Unresolved
    • 9.0
    • None
    • contrib - LTR
    • None

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              nminami Naoto Minami
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 50m
                  2h 50m