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/15 17:32:11 UTC

(solr) branch jira/solr-13350 updated (1ec21d4274f -> 278a1ad7c62)

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

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


    from 1ec21d4274f more logic in SolrIndexSearcher.allowMT utility for less code duplication and fewer MTCollectorQueryCheck visits
     add 7054fda0e83 Clarify split parameter usage (#2263)
     add 6afbc20ee06 SOLR-17066: Switch ConcurrentSolrClients away from core URLs (#2254)
     add 52673a2b1a6 Suppress two `gradle dependencyCheckAggregate` false positives (#2198)
     add 36220a8f1a6 Workaround bug in stalebot caching
     add b2a2a07ff12 Update URL in "List Fields Examples" section in schema-api.adoc (#2270)
     add 720bff29c23 NO JIRA: remove duplicate '(cmd.getFlags() & GET_SCORES) != 0' calls (#2262)
     new a2b48a87669 Merge remote-tracking branch 'origin/main' into jira/solr-13350
     new 278a1ad7c62 more 'needsScores' use (post origin/main merge conflict resolution)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .github/workflows/stale.yml                                |  4 ++--
 build.gradle                                               |  2 +-
 gradle/validation/owasp-dependency-check/exclusions.xml    | 14 ++++++++++++++
 .../src/java/org/apache/solr/search/SolrIndexSearcher.java | 14 ++++++--------
 .../java/org/apache/solr/update/StreamingSolrClients.java  |  7 +++++++
 .../apache/solr/client/solrj/impl/ConnectionReuseTest.java |  3 ++-
 .../apache/solr/cloud/FullSolrCloudDistribCmdsTest.java    |  4 ++--
 .../pages/indexing-with-update-handlers.adoc               |  2 +-
 .../modules/indexing-guide/pages/schema-api.adoc           |  2 +-
 .../apache/solr/client/solrj/impl/LBHttpSolrClient.java    |  3 ---
 .../embedded/SolrExampleStreamingBinaryHttp2Test.java      |  3 ++-
 .../solrj/embedded/SolrExampleStreamingBinaryTest.java     |  3 ++-
 .../solrj/embedded/SolrExampleStreamingHttp2Test.java      |  6 ++++--
 .../client/solrj/embedded/SolrExampleStreamingTest.java    |  3 ++-
 .../impl/ConcurrentUpdateHttp2SolrClientBadInputTest.java  |  8 ++++----
 .../solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java    |  6 ++++--
 .../solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java |  3 ++-
 .../solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java  |  6 ++++--
 .../client/solrj/impl/ConcurrentUpdateSolrClientTest.java  |  6 ++++--
 .../solr/client/solrj/impl/HttpSolrClientConPoolTest.java  |  1 +
 .../solr/cloud/FullThrottleStoppableIndexingThread.java    |  2 ++
 21 files changed, 67 insertions(+), 35 deletions(-)


(solr) 01/02: Merge remote-tracking branch 'origin/main' into jira/solr-13350

Posted by cp...@apache.org.
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 a2b48a87669c0ad47566428333f062d4d9942fa0
Merge: 1ec21d4274f 720bff29c23
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Thu Feb 15 17:25:50 2024 +0000

    Merge remote-tracking branch 'origin/main' into jira/solr-13350
    
    Resolved Conflicts:
            solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java

 .github/workflows/stale.yml                                |  4 ++--
 build.gradle                                               |  2 +-
 gradle/validation/owasp-dependency-check/exclusions.xml    | 14 ++++++++++++++
 .../src/java/org/apache/solr/search/SolrIndexSearcher.java |  4 ++--
 .../java/org/apache/solr/update/StreamingSolrClients.java  |  7 +++++++
 .../apache/solr/client/solrj/impl/ConnectionReuseTest.java |  3 ++-
 .../apache/solr/cloud/FullSolrCloudDistribCmdsTest.java    |  4 ++--
 .../pages/indexing-with-update-handlers.adoc               |  2 +-
 .../modules/indexing-guide/pages/schema-api.adoc           |  2 +-
 .../apache/solr/client/solrj/impl/LBHttpSolrClient.java    |  3 ---
 .../embedded/SolrExampleStreamingBinaryHttp2Test.java      |  3 ++-
 .../solrj/embedded/SolrExampleStreamingBinaryTest.java     |  3 ++-
 .../solrj/embedded/SolrExampleStreamingHttp2Test.java      |  6 ++++--
 .../client/solrj/embedded/SolrExampleStreamingTest.java    |  3 ++-
 .../impl/ConcurrentUpdateHttp2SolrClientBadInputTest.java  |  8 ++++----
 .../solrj/impl/ConcurrentUpdateHttp2SolrClientTest.java    |  6 ++++--
 .../solrj/impl/ConcurrentUpdateSolrClientBadInputTest.java |  3 ++-
 .../solrj/impl/ConcurrentUpdateSolrClientBuilderTest.java  |  6 ++++--
 .../client/solrj/impl/ConcurrentUpdateSolrClientTest.java  |  6 ++++--
 .../solr/client/solrj/impl/HttpSolrClientConPoolTest.java  |  1 +
 .../solr/cloud/FullThrottleStoppableIndexingThread.java    |  2 ++
 21 files changed, 63 insertions(+), 29 deletions(-)

diff --cc solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 2cbc60f786c,948658188c8..af1a722668b
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@@ -1881,76 -1874,35 +1881,76 @@@ public class SolrIndexSearcher extends 
        qr.setNextCursorMark(cmd.getCursorMark());
        hitsRelation = Relation.EQUAL_TO;
      } else {
 -      final TopDocsCollector<?> topCollector = buildTopDocsCollector(len, cmd);
 -      MaxScoreCollector maxScoreCollector = null;
 -      Collector collector = topCollector;
 -      if (needScores) {
 -        maxScoreCollector = new MaxScoreCollector();
 -        collector = MultiCollector.wrap(topCollector, maxScoreCollector);
 +      if (log.isInfoEnabled()) {
 +        log.info("calling from 2, query: {}", query.getClass());
        }
 -      final ScoreMode scoreModeUsed =
 -          buildAndRunCollectorChain(qr, query, collector, cmd, pf.postFilter).scoreMode();
 +      final TopDocs topDocs;
 +      if (!allowMT(pf.postFilter, cmd, query)) {
 +        if (log.isInfoEnabled()) {
 +          log.info("skipping collector manager");
 +        }
 +        final TopDocsCollector<?> topCollector = buildTopDocsCollector(len, cmd);
 +        MaxScoreCollector maxScoreCollector = null;
 +        Collector collector = topCollector;
 +        if (needScores) {
 +          maxScoreCollector = new MaxScoreCollector();
 +          collector = MultiCollector.wrap(topCollector, maxScoreCollector);
 +        }
 +        final ScoreMode scoreModeUsed =
 +            buildAndRunCollectorChain(qr, query, collector, cmd, pf.postFilter).scoreMode();
 +
 +        totalHits = topCollector.getTotalHits();
 +        topDocs = topCollector.topDocs(0, len);
 +        if (scoreModeUsed == ScoreMode.COMPLETE || scoreModeUsed == ScoreMode.COMPLETE_NO_SCORES) {
 +          hitsRelation = TotalHits.Relation.EQUAL_TO;
 +        } else {
 +          hitsRelation = topDocs.totalHits.relation;
 +        }
 +        if (cmd.getSort() != null && cmd.getQuery() instanceof RankQuery == false && needScores) {
 +          TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
 +        }
 +        populateNextCursorMarkFromTopDocs(qr, cmd, topDocs);
 +
 +        maxScore =
 +            totalHits > 0
 +                ? (maxScoreCollector == null ? Float.NaN : maxScoreCollector.getMaxScore())
 +                : 0.0f;
 +        nDocsReturned = topDocs.scoreDocs.length;
  
 -      totalHits = topCollector.getTotalHits();
 -      final TopDocs topDocs = topCollector.topDocs(0, len);
 -      if (scoreModeUsed == ScoreMode.COMPLETE || scoreModeUsed == ScoreMode.COMPLETE_NO_SCORES) {
 -        hitsRelation = TotalHits.Relation.EQUAL_TO;
        } else {
 -        hitsRelation = topDocs.totalHits.relation;
 -      }
 -      if (cmd.getSort() != null && cmd.getQuery() instanceof RankQuery == false && needScores) {
 -        TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
 +        if (log.isInfoEnabled()) {
 +          log.info("using CollectorManager");
 +        }
 +        final SearchResult searchResult =
 +            searchCollectorManagers(len, cmd, query, true, needScores, false);
 +        final Object[] res = searchResult.result;
 +        final TopDocsResult result = (TopDocsResult) res[0];
 +
 +        totalHits = result.totalHits;
 +        topDocs = result.topDocs;
 +
 +        if (res.length > 1) {
 +          MaxScoreResult result2 = (MaxScoreResult) res[1];
 +          maxScore = totalHits > 0 ? result2.maxScore : 0.0f;
 +        } else {
 +          maxScore = Float.NaN;
 +        }
 +
 +        populateNextCursorMarkFromTopDocs(qr, cmd, topDocs);
 +        if (cmd.getSort() != null && !(cmd.getQuery() instanceof RankQuery) && needScores) {
 +          TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
 +        }
 +        nDocsReturned = topDocs.scoreDocs.length;
 +        ScoreMode scoreModeUsed = searchResult.scoreMode;
 +        if (scoreModeUsed == ScoreMode.COMPLETE || scoreModeUsed == ScoreMode.COMPLETE_NO_SCORES) {
 +          hitsRelation = TotalHits.Relation.EQUAL_TO;
 +        } else {
 +          hitsRelation = topDocs.totalHits.relation;
 +        }
        }
 -      populateNextCursorMarkFromTopDocs(qr, cmd, topDocs);
  
 -      maxScore =
 -          totalHits > 0
 -              ? (maxScoreCollector == null ? Float.NaN : maxScoreCollector.getMaxScore())
 -              : 0.0f;
 -      nDocsReturned = topDocs.scoreDocs.length;
        ids = new int[nDocsReturned];
-       scores = (cmd.getFlags() & GET_SCORES) != 0 ? new float[nDocsReturned] : null;
+       scores = needScores ? new float[nDocsReturned] : null;
        for (int i = 0; i < nDocsReturned; i++) {
          ScoreDoc scoreDoc = topDocs.scoreDocs[i];
          ids[i] = scoreDoc.doc;


(solr) 02/02: more 'needsScores' use (post origin/main merge conflict resolution)

Posted by cp...@apache.org.
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 278a1ad7c623a06b852252f27c1d61e57ac215ac
Author: Christine Poerschke <cp...@apache.org>
AuthorDate: Thu Feb 15 17:30:31 2024 +0000

    more 'needsScores' use (post origin/main merge conflict resolution)
---
 .../src/java/org/apache/solr/search/SolrIndexSearcher.java     | 10 ++++------
 1 file changed, 4 insertions(+), 6 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 af1a722668b..6f133bff6b7 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -2237,7 +2237,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
         MaxScoreCollector maxScoreCollector = null;
         List<Collector> collectors = new ArrayList<>(Arrays.asList(topCollector, setCollector));
 
-        if ((cmd.getFlags() & GET_SCORES) != 0) {
+        if (needScores) {
           maxScoreCollector = new MaxScoreCollector();
           collectors.add(maxScoreCollector);
         }
@@ -2252,9 +2252,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
         assert (totalHits == set.size()) || qr.isPartialResults();
 
         topDocs = topCollector.topDocs(0, len);
-        if (cmd.getSort() != null
-            && !(cmd.getQuery() instanceof RankQuery)
-            && (cmd.getFlags() & GET_SCORES) != 0) {
+        if (cmd.getSort() != null && !(cmd.getQuery() instanceof RankQuery) && needScores) {
           TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
         }
         populateNextCursorMarkFromTopDocs(qr, cmd, topDocs);
@@ -2265,7 +2263,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
       } else {
         log.debug("using CollectorManager");
 
-        boolean needMaxScore = (cmd.getFlags() & GET_SCORES) != 0;
+        boolean needMaxScore = needScores;
         SearchResult searchResult =
             searchCollectorManagers(len, cmd, query, true, needMaxScore, true);
         Object[] res = searchResult.result;
@@ -2290,7 +2288,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
 
         populateNextCursorMarkFromTopDocs(qr, cmd, topDocs);
         //        if (cmd.getSort() != null && !(cmd.getQuery() instanceof RankQuery) &&
-        // (cmd.getFlags() & GET_SCORES) != 0) {
+        // needScores) {
         //          TopFieldCollector.populateScores(topDocs.scoreDocs, this, query);
         //        }
         // nDocsReturned = topDocs.scoreDocs.length;