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 <[email protected]> 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();
