alessandrobenedetti commented on a change in pull request #1571:
URL: https://github.com/apache/lucene-solr/pull/1571#discussion_r496244191



##########
File path: 
solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
##########
@@ -146,93 +149,114 @@ public LTRQParser(String qstr, SolrParams localParams, 
SolrParams params,
     @Override
     public Query parse() throws SyntaxError {
       // ReRanking Model
-      final String modelName = localParams.get(LTRQParserPlugin.MODEL);
-      if ((modelName == null) || modelName.isEmpty()) {
+      final String[] modelNames = 
localParams.getParams(LTRQParserPlugin.MODEL);
+      if ((modelNames == null) || modelNames.length==0 || 
modelNames[0].isEmpty()) {
         throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
             "Must provide model in the request");
       }
-
-      final LTRScoringModel ltrScoringModel = mr.getModel(modelName);
-      if (ltrScoringModel == null) {
-        throw new SolrException(SolrException.ErrorCode.BAD_REQUEST,
-            "cannot find " + LTRQParserPlugin.MODEL + " " + modelName);
-      }
-
-      final String modelFeatureStoreName = 
ltrScoringModel.getFeatureStoreName();
-      final boolean extractFeatures = 
SolrQueryRequestContextUtils.isExtractingFeatures(req);
-      final String fvStoreName = 
SolrQueryRequestContextUtils.getFvStoreName(req);
-      // Check if features are requested and if the model feature store and 
feature-transform feature store are the same
-      final boolean featuresRequestedFromSameStore = 
(modelFeatureStoreName.equals(fvStoreName) || fvStoreName == null) ? 
extractFeatures:false;
-      if (threadManager != null) {
-        
threadManager.setExecutor(req.getCore().getCoreContainer().getUpdateShardHandler().getUpdateExecutor());
-      }
-      final LTRScoringQuery scoringQuery = new LTRScoringQuery(ltrScoringModel,
-          extractEFIParams(localParams),
-          featuresRequestedFromSameStore, threadManager);
-
-      // Enable the feature vector caching if we are extracting features, and 
the features
-      // we requested are the same ones we are reranking with
-      if (featuresRequestedFromSameStore) {
-        scoringQuery.setFeatureLogger( 
SolrQueryRequestContextUtils.getFeatureLogger(req) );
+     
+      LTRScoringQuery[] rerankingQueries = new 
LTRScoringQuery[modelNames.length];
+      for (int i = 0; i < modelNames.length; i++) {
+        final LTRScoringQuery rerankingQuery;
+        if (!ORIGINAL_RANKING.equals(modelNames[i])) {

Review comment:
       Thinking a little bit more about it, even if we solve the 
"originalRanking" request through a special param, when returning the results, 
the [interleaving] transformer will need to present for the search results 
coming from the original ranking a value :
   
   {
           "id":"GB18030TEST",
           "score":1.0005897,
           "[interleaving]":"OriginalRanking"},
         {
           "id":"UTF8TEST",
           "score":0.79656565,
           "[interleaving]":"myModel"}]
     }
   
   This must follow the same format ( I wouldn't add a special field name 
different from [interleaing], this would complicate evaluators behaviours.
   
   This means that in the end I guess we need to keep a special name to 
indicate the original ranking, and this name can't be used by the admin for any 
other model.
   Given that, do you think is still beneficial to have a separate parameter?
   Or just using the original approach, with the documented exclusivity of a 
special name, would look cleaner?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



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

Reply via email to