You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by cp...@apache.org on 2024/02/22 12:56:10 UTC

(solr) 01/02: factor out SearchResult.getTopDocsResult method

This is an automated email from the ASF dual-hosted git repository.

cpoerschke pushed a commit to branch jira/solr-13350
in repository https://gitbox.apache.org/repos/asf/solr.git

commit 7219a1e5a59c62ebf3df0035314b2746c4ad60d8
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Thu Feb 22 12:49:55 2024 +0000

    factor out SearchResult.getTopDocsResult method
---
 .../org/apache/solr/search/SolrIndexSearcher.java  | 24 ++++++++++++++--------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index de0eef98db5..aa83202b483 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -1934,11 +1934,9 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
             searchCollectorManagers(len, cmd, query, true, needScores, false);
         scoreModeUsed = searchResult.scoreMode;
 
-        final Object[] res = searchResult.result;
-        final TopDocsResult result = (TopDocsResult) res[0];
-
-        totalHits = result.totalHits;
-        topDocs = result.topDocs;
+        TopDocsResult topDocsResult = searchResult.getTopDocsResult();
+        totalHits = topDocsResult.totalHits;
+        topDocs = topDocsResult.topDocs;
 
         maxScore = searchResult.getMaxScore(totalHits);
       }
@@ -2168,6 +2166,15 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
       this.result = result;
     }
 
+    public TopDocsResult getTopDocsResult() {
+      for (Object res : result) {
+        if (res instanceof TopDocsResult) {
+          return (TopDocsResult) res;
+        }
+      }
+      return null;
+    }
+
     public float getMaxScore(int totalHits) {
       if (totalHits > 0) {
         for (Object res : result) {
@@ -2293,10 +2300,9 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
         boolean needMaxScore = needScores;
         SearchResult searchResult =
             searchCollectorManagers(len, cmd, query, true, needMaxScore, true);
-        Object[] res = searchResult.result;
-        TopDocsResult result = (TopDocsResult) res[0];
-        totalHits = result.totalHits;
-        topDocs = result.topDocs;
+        TopDocsResult topDocsResult = searchResult.getTopDocsResult();
+        totalHits = topDocsResult.totalHits;
+        topDocs = topDocsResult.topDocs;
         maxScore = searchResult.getMaxScore(totalHits);
         set = searchResult.getDocSet();