<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.model.Cause$UpstreamCause'><shortDescription>Started by upstream project "Lucene-main-Windows" build number 20,739</shortDescription><upstreamBuild>20739</upstreamBuild><upstreamProject>Lucene-main-Windows</upstreamProject><upstreamUrl>job/Lucene-main-Windows/</upstreamUrl></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginbranch_10x _class='hudson.plugins.git.util.Build'><buildNumber>6003</buildNumber><marked><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</SHA1><branch><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</SHA1><name>refs/remotes/origin/branch_10x</name></branch></marked><revision><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</SHA1><branch><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</SHA1><name>refs/remotes/origin/branch_10x</name></branch></revision></refsremotesoriginbranch_10x></buildsByBranchName><lastBuiltRevision><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</SHA1><branch><SHA1>bb79ec5f18473aba6f95d83878924f45070d15b3</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 _class='hudson.model.ParametersAction'></action><action _class='hudson.tasks.junit.TestResultAction'><failCount>0</failCount><skipCount>1491</skipCount><totalCount>20113</totalCount><urlName>testReport</urlName></action><action></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><description>Java: 64bit/hotspot/jdk-21.0.12 -XX:+UseCompressedOops -XX:+UseSerialGC</description><displayName>#6003</displayName><duration>686217</duration><estimatedDuration>750687</estimatedDuration><fullDisplayName>Lucene-10.x-macOS #6003</fullDisplayName><id>6003</id><inProgress>false</inProgress><keepLog>false</keepLog><number>6003</number><queueId>232404</queueId><result>SUCCESS</result><timestamp>1789768878589</timestamp><url>https://jenkins.thetaphi.de/view/Lucene/job/Lucene-10.x-macOS/6003/</url><builtOn>macOS VM</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>lucene/core/src/test/org/apache/lucene/codecs/lucene104/TestLucene104ScalarQuantizedVectorsFormat.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/codecs/lucene104/OffHeapScalarQuantizedFloatVectorValues.java</affectedPath><affectedPath>lucene/core/src/test/org/apache/lucene/codecs/lucene104/TestLucene104HnswScalarQuantizedVectorsFormat.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104HnswScalarQuantizedVectorsFormat.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsReader.java</affectedPath><affectedPath>lucene/CHANGES.txt</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/util/quantization/OptimizedScalarQuantizer.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsFormat.java</affectedPath><affectedPath>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsWriter.java</affectedPath><commitId>bb79ec5f18473aba6f95d83878924f45070d15b3</commitId><timestamp>1789767604000</timestamp><author><absoluteUrl>https://jenkins.thetaphi.de/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Implement data-blind scalar quantization (#16030)

Add a new Mode option to scalar quantization that allows switching between 3 different storage representations:

CENTERED maintains the existing path: a mean vector is computed per-segment and every vector is quantized as a residual against this mean vector.
DATA_BLIND_WITH_FLOATS skips computing a mean vector and provides a zero vector instead. This makes merging cheaper -- there's no need to compute the segment mean vector or re-quantize the contents of the segment. The original input float vector is retained.
DATA_BLIND_WITHOUT_FLOATS extends the approach above by dropping the float vectors as well. This only support for symmetric quantization; asymmetric quantization needs to re-read the original floats as "queries" for graph search.
Both CENTERED and DATA_BLIND_WITH_FLOATS require that there is an input float field on segment inputs or merges are failed, when floats are dropped we allow inputs with he same encoding.

Backported as #16685
</comment><date>2026-09-18 14:40:04 -0700</date><id>bb79ec5f18473aba6f95d83878924f45070d15b3</id><msg>Implement data-blind scalar quantization (#16030)</msg><path><editType>edit</editType><file>lucene/core/src/test/org/apache/lucene/codecs/lucene104/TestLucene104ScalarQuantizedVectorsFormat.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/util/quantization/OptimizedScalarQuantizer.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsFormat.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsWriter.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104HnswScalarQuantizedVectorsFormat.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/codecs/lucene104/OffHeapScalarQuantizedFloatVectorValues.java</file></path><path><editType>edit</editType><file>lucene/core/src/test/org/apache/lucene/codecs/lucene104/TestLucene104HnswScalarQuantizedVectorsFormat.java</file></path><path><editType>edit</editType><file>lucene/core/src/java/org/apache/lucene/codecs/lucene104/Lucene104ScalarQuantizedVectorsReader.java</file></path><path><editType>edit</editType><file>lucene/CHANGES.txt</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.thetaphi.de/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit></freeStyleBuild>