<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>17818892</buildableDurationMillis><buildableTimeMillis>17818892</buildableTimeMillis><buildingDurationMillis>451556</buildingDurationMillis><executingTimeMillis>451556</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>5021</waitingDurationMillis><waitingTimeMillis>5021</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginbranch_10x _class='hudson.plugins.git.util.Build'><buildNumber>567</buildNumber><marked><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><branch><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><name>refs/remotes/origin/branch_10x</name></branch></marked><revision><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><branch><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><name>refs/remotes/origin/branch_10x</name></branch></revision></refsremotesoriginbranch_10x></buildsByBranchName><lastBuiltRevision><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><branch><SHA1>d60e550b47f44253abc822454f7a5098526fb01d</SHA1><name>refs/remotes/origin/branch_10x</name></branch></lastBuiltRevision><remoteUrl>https://gitbox.apache.org/repos/asf/lucene.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#567</displayName><duration>451556</duration><estimatedDuration>461779</estimatedDuration><fullDisplayName>Lucene » Lucene-Maven-Snapshots-10.x #567</fullDisplayName><id>567</id><inProgress>false</inProgress><keepLog>false</keepLog><number>567</number><queueId>21411054</queueId><result>SUCCESS</result><timestamp>1783521604184</timestamp><url>https://ci-builds.apache.org/job/Lucene/job/Lucene-Maven-Snapshots-10.x/567/</url><builtOn>lucene-solr-3</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lucene/core/src/java/org/apache/lucene/search/ReqExclBulkScorer.java</affectedPath><affectedPath>lucene/core/src/test/org/apache/lucene/search/TestDenseConjunctionBulkScorer.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/search/TwoPhaseIterator.java</affectedPath><commitId>d1e035949fb5c297257228d825307dafe5f36e03</commitId><timestamp>1783500467000</timestamp><author><absoluteUrl>https://ci-builds.apache.org/user/jimczi</absoluteUrl><fullName>Jim Ferenczi</fullName></author><authorEmail>jim.ferenczi@elastic.co</authorEmail><comment>Revert TwoPhaseIterator#docIDRunEnd default to approximation().docID()

The default was changed in #16307 to return docID()+1, mirroring
DocIdSetIterator. That is wrong for a TwoPhaseIterator: its current
approximation doc is only a candidate until matches() confirms it.
DenseConjunctionBulkScorer#scoreWindow consults docIDRunEnd() before
matches(), so an optimistic docID()+1 let a width-1 window treat an
unconfirmed (possibly out-of-range) boundary doc as a fully-matching run
and collect it via collectRange, causing an off-by-one over-count (e.g.
TestRangeFacetCounts#testRandomLongsMultiValued).

Restore the conservative default (report no matching run) and document
why it differs from DocIdSetIterator. The ReqExclBulkScorer optimization
is unaffected: it calls docIDRunEnd() only after matches() and already
clamps to at least upTo+1.

Add a DenseConjunctionBulkScorer test asserting that a two-phase clause
on the default docIDRunEnd() collects the same docs whether scored in one
pass or as adjacent width-1 windows -- the partition invariance that
intra-segment search concurrency relies on.

(cherry picked from commit 32f32667a174c0df5dd6d0ba48870d073868f71b)
</comment><date>2026-07-08 10:47:47 +0200</date><id>d1e035949fb5c297257228d825307dafe5f36e03</id><msg>Revert TwoPhaseIterator#docIDRunEnd default to approximation().docID()</msg><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/search/TwoPhaseIterator.java</file></path><path><editType>edit</editType><file>lucene/core/src/test/org/apache/lucene/search/TestDenseConjunctionBulkScorer.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/search/ReqExclBulkScorer.java</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java</affectedPath><affectedPath>lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/search/CachingCollector.java</affectedPath><affectedPath>lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java</affectedPath><affectedPath>lucene/core/src/test/org/apache/lucene/search/TestCachingCollectorManager.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/search/CachingCollectorManager.java</affectedPath><affectedPath>lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java</affectedPath><affectedPath>lucene/CHANGES.txt</affectedPath><affectedPath>lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java</affectedPath><commitId>d60e550b47f44253abc822454f7a5098526fb01d</commitId><timestamp>1783502953000</timestamp><author><absoluteUrl>https://ci-builds.apache.org/user/javanna</absoluteUrl><fullName>Luca Cavanna</fullName></author><authorEmail>javanna@apache.org</authorEmail><comment>Introduce CachingCollectorManager to parallelize search when using CachingCollector (#16247)

Introduce CachingCollectorManager, switch GroupingSearch to use search concurrency and move away from the deprecated search(Query, Collector) method.

In addition, remove experimental GroupingSearch constructor that takes a GroupSelector as argument in favor of providing a GroupSelector supplier.

Relates to #12892.
</comment><date>2026-07-08 11:29:13 +0200</date><id>d60e550b47f44253abc822454f7a5098526fb01d</id><msg>Introduce CachingCollectorManager to parallelize search when using CachingCollector (#16247)</msg><path><editType>edit</editType><file>lucene/grouping/src/test/org/apache/lucene/search/grouping/TestGroupingSearch.java</file></path><path><editType>add</editType><file>lucene/core/src/test/org/apache/lucene/search/TestCachingCollectorManager.java</file></path><path><editType>edit</editType><file>lucene/grouping/src/java/org/apache/lucene/search/grouping/GroupingSearch.java</file></path><path><editType>edit</editType><file>lucene/CHANGES.txt</file></path><path><editType>edit</editType><file>lucene/grouping/src/test/org/apache/lucene/search/grouping/BaseGroupSelectorTestCase.java</file></path><path><editType>add</editType><file>lucene/core/src/java/org/apache/lucene/search/CachingCollectorManager.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/search/CachingCollector.java</file></path><path><editType>edit</editType><file>lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupHeadsCollector.java</file></path><path><editType>edit</editType><file>lucene/grouping/src/java/org/apache/lucene/search/grouping/AllGroupsCollector.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://ci-builds.apache.org/user/jimczi</absoluteUrl><fullName>Jim Ferenczi</fullName></culprit><culprit><absoluteUrl>https://ci-builds.apache.org/user/javanna</absoluteUrl><fullName>Luca Cavanna</fullName></culprit></freeStyleBuild>