You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2025/06/03 05:06:26 UTC
(lucene) branch main updated: Merge DocAndFreqBuffer and DocAndScoreBuffer. (#14748)
This is an automated email from the ASF dual-hosted git repository.
jpountz pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/lucene.git
The following commit(s) were added to refs/heads/main by this push:
new 3b6408ac60b Merge DocAndFreqBuffer and DocAndScoreBuffer. (#14748)
3b6408ac60b is described below
commit 3b6408ac60ba98e5df5e2344a6ffd7815be37f52
Author: Adrien Grand <jp...@gmail.com>
AuthorDate: Tue Jun 3 07:06:21 2025 +0200
Merge DocAndFreqBuffer and DocAndScoreBuffer. (#14748)
I initially kept those separated but I'm now coming to the conclusion that they
should be merged:
- While frequencies are ints today, some queries produce float frequencies
(`SloppyPhraseQuery`, `CombinedFieldQuery`).
- `TermScorer` no longer needs to keep track of a separate buffer for
frequencies.
Co-authored-by: Alan Woodward <ro...@gmail.com>
---
.../codecs/lucene103/Lucene103PostingsReader.java | 8 ++--
.../java/org/apache/lucene/index/CheckIndex.java | 8 ++--
.../java/org/apache/lucene/index/PostingsEnum.java | 10 ++---
.../apache/lucene/search/BatchScoreBulkScorer.java | 4 +-
.../search/BlockMaxConjunctionBulkScorer.java | 2 +-
.../org/apache/lucene/search/BooleanScorer.java | 4 +-
...eqBuffer.java => DocAndFloatFeatureBuffer.java} | 19 ++++----
.../apache/lucene/search/DocAndScoreAccBuffer.java | 9 ++--
.../apache/lucene/search/DocAndScoreBuffer.java | 50 ----------------------
.../apache/lucene/search/MaxScoreBulkScorer.java | 4 +-
.../src/java/org/apache/lucene/search/Scorer.java | 8 ++--
.../java/org/apache/lucene/search/TermScorer.java | 24 ++++-------
.../org/apache/lucene/search/TestTermScorer.java | 4 +-
.../lucene/tests/index/AssertingLeafReader.java | 4 +-
.../lucene/tests/index/RandomPostingsTester.java | 6 +--
.../lucene/tests/search/AssertingScorer.java | 4 +-
16 files changed, 59 insertions(+), 109 deletions(-)
diff --git a/lucene/core/src/java/org/apache/lucene/codecs/lucene103/Lucene103PostingsReader.java b/lucene/core/src/java/org/apache/lucene/codecs/lucene103/Lucene103PostingsReader.java
index f4d64318f32..6bfa3c3b669 100644
--- a/lucene/core/src/java/org/apache/lucene/codecs/lucene103/Lucene103PostingsReader.java
+++ b/lucene/core/src/java/org/apache/lucene/codecs/lucene103/Lucene103PostingsReader.java
@@ -46,7 +46,7 @@ import org.apache.lucene.index.PostingsEnum;
import org.apache.lucene.index.SegmentReadState;
import org.apache.lucene.internal.vectorization.PostingDecodingUtil;
import org.apache.lucene.internal.vectorization.VectorizationProvider;
-import org.apache.lucene.search.DocAndFreqBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.store.ByteArrayDataInput;
import org.apache.lucene.store.ChecksumIndexInput;
import org.apache.lucene.store.DataInput;
@@ -1036,7 +1036,7 @@ public final class Lucene103PostingsReader extends PostingsReaderBase {
}
@Override
- public void nextPostings(int upTo, DocAndFreqBuffer buffer) throws IOException {
+ public void nextPostings(int upTo, DocAndFloatFeatureBuffer buffer) throws IOException {
assert needsRefilling == false;
if (needsFreq == false) {
@@ -1073,7 +1073,9 @@ public final class Lucene103PostingsReader extends PostingsReaderBase {
}
assert buffer.size > 0;
- System.arraycopy(freqBuffer, start, buffer.freqs, 0, buffer.size);
+ for (int i = 0; i < buffer.size; ++i) {
+ buffer.features[i] = freqBuffer[start + i];
+ }
advance(upTo);
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
index e2d97b1355f..49c6ef2f137 100644
--- a/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
+++ b/lucene/core/src/java/org/apache/lucene/index/CheckIndex.java
@@ -63,7 +63,7 @@ import org.apache.lucene.index.CheckIndex.Status.DocValuesStatus;
import org.apache.lucene.index.PointValues.IntersectVisitor;
import org.apache.lucene.index.PointValues.Relation;
import org.apache.lucene.internal.hppc.IntIntHashMap;
-import org.apache.lucene.search.DocAndFreqBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.FieldExistsQuery;
import org.apache.lucene.search.KnnCollector;
@@ -1653,7 +1653,7 @@ public final class CheckIndex implements Closeable {
postings = termsEnum.postings(postings, PostingsEnum.ALL);
bulkPostings = termsEnum.postings(bulkPostings, PostingsEnum.ALL);
bulkPostings.nextDoc();
- DocAndFreqBuffer buffer = new DocAndFreqBuffer();
+ DocAndFloatFeatureBuffer buffer = new DocAndFloatFeatureBuffer();
int bufferIndex = 0;
if (hasFreqs == false) {
@@ -1719,10 +1719,10 @@ public final class CheckIndex implements Closeable {
+ " as next doc while PostingsEnum#nextDoc returns "
+ doc);
}
- if (freq != buffer.freqs[bufferIndex]) {
+ if (freq != buffer.features[bufferIndex]) {
throw new CheckIndexException(
"PostingsEnum#nextPostings returns "
- + buffer.freqs[bufferIndex]
+ + buffer.features[bufferIndex]
+ " as term freq while PostingsEnum#freq returns "
+ freq);
}
diff --git a/lucene/core/src/java/org/apache/lucene/index/PostingsEnum.java b/lucene/core/src/java/org/apache/lucene/index/PostingsEnum.java
index 8e82e0a6d69..8fd9d8c9a37 100644
--- a/lucene/core/src/java/org/apache/lucene/index/PostingsEnum.java
+++ b/lucene/core/src/java/org/apache/lucene/index/PostingsEnum.java
@@ -17,7 +17,7 @@
package org.apache.lucene.index;
import java.io.IOException;
-import org.apache.lucene.search.DocAndFreqBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.BytesRef;
@@ -126,18 +126,18 @@ public abstract class PostingsEnum extends DocIdSetIterator {
* buffer.size = size;
* </pre>
*
- * <p><b>NOTE</b>: The provided {@link DocAndFreqBuffer} should not hold references to internal
- * data structures.
+ * <p><b>NOTE</b>: The provided {@link DocAndFloatFeatureBuffer} should not hold references to
+ * internal data structures.
*
* @lucene.internal
*/
- public void nextPostings(int upTo, DocAndFreqBuffer buffer) throws IOException {
+ public void nextPostings(int upTo, DocAndFloatFeatureBuffer buffer) throws IOException {
int batchSize = 16; // arbitrary
buffer.growNoCopy(batchSize);
int size = 0;
for (int doc = docID(); doc < upTo && size < batchSize; doc = nextDoc()) {
buffer.docs[size] = doc;
- buffer.freqs[size] = freq();
+ buffer.features[size] = freq();
++size;
}
buffer.size = size;
diff --git a/lucene/core/src/java/org/apache/lucene/search/BatchScoreBulkScorer.java b/lucene/core/src/java/org/apache/lucene/search/BatchScoreBulkScorer.java
index c000209d2fc..d1412fb5e45 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BatchScoreBulkScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BatchScoreBulkScorer.java
@@ -26,7 +26,7 @@ import org.apache.lucene.util.Bits;
class BatchScoreBulkScorer extends BulkScorer {
private final SimpleScorable scorable = new SimpleScorable();
- private final DocAndScoreBuffer buffer = new DocAndScoreBuffer();
+ private final DocAndFloatFeatureBuffer buffer = new DocAndFloatFeatureBuffer();
private final Scorer scorer;
BatchScoreBulkScorer(Scorer scorer) {
@@ -50,7 +50,7 @@ class BatchScoreBulkScorer extends BulkScorer {
buffer.size > 0;
scorer.nextDocsAndScores(max, acceptDocs, buffer)) {
for (int i = 0, size = buffer.size; i < size; i++) {
- float score = scorable.score = buffer.scores[i];
+ float score = scorable.score = buffer.features[i];
if (score >= scorable.minCompetitiveScore) {
collector.collect(buffer.docs[i]);
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java
index e2e063feb5e..31904eeff7e 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BlockMaxConjunctionBulkScorer.java
@@ -41,7 +41,7 @@ final class BlockMaxConjunctionBulkScorer extends BulkScorer {
private final DocAndScore scorable = new DocAndScore();
private final double[] sumOfOtherClauses;
private final int maxDoc;
- private final DocAndScoreBuffer docAndScoreBuffer = new DocAndScoreBuffer();
+ private final DocAndFloatFeatureBuffer docAndScoreBuffer = new DocAndFloatFeatureBuffer();
private final DocAndScoreAccBuffer docAndScoreAccBuffer = new DocAndScoreAccBuffer();
BlockMaxConjunctionBulkScorer(int maxDoc, List<Scorer> scorers) throws IOException {
diff --git a/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java b/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
index 1f4dd4f80ce..9bb2ec7882a 100644
--- a/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/BooleanScorer.java
@@ -81,7 +81,7 @@ final class BooleanScorer extends BulkScorer {
final int minShouldMatch;
final long cost;
final boolean needsScores;
- private final DocAndScoreBuffer docAndScoreBuffer = new DocAndScoreBuffer();
+ private final DocAndFloatFeatureBuffer docAndScoreBuffer = new DocAndFloatFeatureBuffer();
BooleanScorer(Collection<Scorer> scorers, int minShouldMatch, boolean needsScores) {
if (minShouldMatch < 1 || minShouldMatch > scorers.size()) {
@@ -148,7 +148,7 @@ final class BooleanScorer extends BulkScorer {
w.scorer.nextDocsAndScores(max, acceptDocs, docAndScoreBuffer)) {
for (int index = 0; index < docAndScoreBuffer.size; ++index) {
final int doc = docAndScoreBuffer.docs[index];
- final float score = docAndScoreBuffer.scores[index];
+ final float score = docAndScoreBuffer.features[index];
final int d = doc & MASK;
matching.set(d);
final Bucket bucket = buckets[d];
diff --git a/lucene/core/src/java/org/apache/lucene/search/DocAndFreqBuffer.java b/lucene/core/src/java/org/apache/lucene/search/DocAndFloatFeatureBuffer.java
similarity index 77%
rename from lucene/core/src/java/org/apache/lucene/search/DocAndFreqBuffer.java
rename to lucene/core/src/java/org/apache/lucene/search/DocAndFloatFeatureBuffer.java
index 3e45d3cf429..78fd7dd1055 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DocAndFreqBuffer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DocAndFloatFeatureBuffer.java
@@ -21,29 +21,32 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.IntsRef;
/**
- * Wrapper around parallel arrays storing doc IDs and their corresponding frequencies.
+ * Wrapper around parallel arrays storing doc IDs and their corresponding features, stored as Java
+ * floats. These features may be anything, but are typically a term frequency or a score.
*
* @lucene.internal
*/
-public final class DocAndFreqBuffer {
+public final class DocAndFloatFeatureBuffer {
+
+ private static final float[] EMPTY_FLOATS = new float[0];
/** Doc IDs */
public int[] docs = IntsRef.EMPTY_INTS;
- /** Frequencies */
- public int[] freqs = IntsRef.EMPTY_INTS;
+ /** Float-valued features */
+ public float[] features = EMPTY_FLOATS;
- /** Number of valid entries in the doc ID and frequency arrays. */
+ /** Number of valid entries in the doc ID and float-valued feature arrays. */
public int size;
/** Sole constructor. */
- public DocAndFreqBuffer() {}
+ public DocAndFloatFeatureBuffer() {}
/** Grow both arrays to ensure that they can store at least the given number of entries. */
public void growNoCopy(int minSize) {
if (docs.length < minSize) {
docs = ArrayUtil.growNoCopy(docs, minSize);
- freqs = new int[docs.length];
+ features = new float[docs.length];
}
}
@@ -53,7 +56,7 @@ public final class DocAndFreqBuffer {
for (int i = 0; i < size; ++i) {
if (liveDocs.get(docs[i])) {
docs[newSize] = docs[i];
- freqs[newSize] = freqs[i];
+ features[newSize] = features[i];
newSize++;
}
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/DocAndScoreAccBuffer.java b/lucene/core/src/java/org/apache/lucene/search/DocAndScoreAccBuffer.java
index dd05e53aac2..ed5ffbc3f9a 100644
--- a/lucene/core/src/java/org/apache/lucene/search/DocAndScoreAccBuffer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/DocAndScoreAccBuffer.java
@@ -62,12 +62,15 @@ public final class DocAndScoreAccBuffer {
}
}
- /** Copy content from the given {@link DocAndScoreBuffer}, expanding float scores to doubles. */
- public void copyFrom(DocAndScoreBuffer buffer) {
+ /**
+ * Copy content from the given {@link DocAndFloatFeatureBuffer}, expanding float scores to
+ * doubles.
+ */
+ public void copyFrom(DocAndFloatFeatureBuffer buffer) {
growNoCopy(buffer.size);
System.arraycopy(buffer.docs, 0, docs, 0, buffer.size);
for (int i = 0; i < buffer.size; ++i) {
- scores[i] = buffer.scores[i];
+ scores[i] = buffer.features[i];
}
this.size = buffer.size;
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/DocAndScoreBuffer.java b/lucene/core/src/java/org/apache/lucene/search/DocAndScoreBuffer.java
deleted file mode 100644
index 5daef38c0ff..00000000000
--- a/lucene/core/src/java/org/apache/lucene/search/DocAndScoreBuffer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.lucene.search;
-
-import org.apache.lucene.util.ArrayUtil;
-import org.apache.lucene.util.IntsRef;
-
-/**
- * Wrapper around parallel arrays storing doc IDs and their corresponding scores.
- *
- * @lucene.internal
- */
-public final class DocAndScoreBuffer {
-
- private static final float[] EMPTY_FLOATS = new float[0];
-
- /** Doc IDs */
- public int[] docs = IntsRef.EMPTY_INTS;
-
- /** Scores */
- public float[] scores = EMPTY_FLOATS;
-
- /** Number of valid entries in the doc ID and score arrays. */
- public int size;
-
- /** Sole constructor. */
- public DocAndScoreBuffer() {}
-
- /** Grow both arrays to ensure that they can store at least the given number of entries. */
- public void growNoCopy(int minSize) {
- if (docs.length < minSize) {
- docs = ArrayUtil.growNoCopy(docs, minSize);
- scores = new float[docs.length];
- }
- }
-}
diff --git a/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java b/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java
index f6e83c7af52..87135f91147 100644
--- a/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/MaxScoreBulkScorer.java
@@ -51,7 +51,7 @@ final class MaxScoreBulkScorer extends BulkScorer {
private final FixedBitSet windowMatches = new FixedBitSet(INNER_WINDOW_SIZE);
private final double[] windowScores = new double[INNER_WINDOW_SIZE];
- private final DocAndScoreBuffer docAndScoreBuffer = new DocAndScoreBuffer();
+ private final DocAndFloatFeatureBuffer docAndScoreBuffer = new DocAndFloatFeatureBuffer();
private final DocAndScoreAccBuffer docAndScoreAccBuffer = new DocAndScoreAccBuffer();
MaxScoreBulkScorer(int maxDoc, List<Scorer> scorers, Scorer filter) throws IOException {
@@ -287,7 +287,7 @@ final class MaxScoreBulkScorer extends BulkScorer {
top.scorer.nextDocsAndScores(innerWindowMax, acceptDocs, docAndScoreBuffer)) {
for (int index = 0; index < docAndScoreBuffer.size; ++index) {
final int doc = docAndScoreBuffer.docs[index];
- final float score = docAndScoreBuffer.scores[index];
+ final float score = docAndScoreBuffer.features[index];
final int i = doc - innerWindowMin;
windowMatches.set(i);
windowScores[i] += score;
diff --git a/lucene/core/src/java/org/apache/lucene/search/Scorer.java b/lucene/core/src/java/org/apache/lucene/search/Scorer.java
index 64db31ba9fd..86207f5c18c 100644
--- a/lucene/core/src/java/org/apache/lucene/search/Scorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/Scorer.java
@@ -107,15 +107,15 @@ public abstract class Scorer extends Scorable {
* buffer.size = size;
* </pre>
*
- * <p><b>NOTE</b>: The provided {@link DocAndScoreBuffer} should not hold references to internal
- * data structures.
+ * <p><b>NOTE</b>: The provided {@link DocAndFloatFeatureBuffer} should not hold references to
+ * internal data structures.
*
* <p><b>NOTE</b>: In case this {@link Scorer} exposes a {@link #twoPhaseIterator()
* TwoPhaseIterator}, it should be positioned on a matching document before this method is called.
*
* @lucene.internal
*/
- public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndScoreBuffer buffer)
+ public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer)
throws IOException {
int batchSize = 16; // arbitrary
buffer.growNoCopy(batchSize);
@@ -124,7 +124,7 @@ public abstract class Scorer extends Scorable {
for (int doc = docID(); doc < upTo && size < batchSize; doc = iterator.nextDoc()) {
if (liveDocs == null || liveDocs.get(doc)) {
buffer.docs[size] = doc;
- buffer.scores[size] = score();
+ buffer.features[size] = score();
++size;
}
}
diff --git a/lucene/core/src/java/org/apache/lucene/search/TermScorer.java b/lucene/core/src/java/org/apache/lucene/search/TermScorer.java
index db782692f45..278f735838e 100644
--- a/lucene/core/src/java/org/apache/lucene/search/TermScorer.java
+++ b/lucene/core/src/java/org/apache/lucene/search/TermScorer.java
@@ -39,7 +39,6 @@ public final class TermScorer extends Scorer {
private final NumericDocValues norms;
private final ImpactsDISI impactsDisi;
private final MaxScoreCache maxScoreCache;
- private DocAndFreqBuffer docAndFreqBuffer;
private long[] normValues = LongsRef.EMPTY_LONGS;
/** Construct a {@link TermScorer} that will iterate all documents. */
@@ -128,32 +127,28 @@ public final class TermScorer extends Scorer {
}
@Override
- public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndScoreBuffer buffer)
+ public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer)
throws IOException {
- if (docAndFreqBuffer == null) {
- docAndFreqBuffer = new DocAndFreqBuffer();
- }
-
for (; ; ) {
if (impactsDisi != null) {
impactsDisi.ensureCompetitive();
}
- postingsEnum.nextPostings(upTo, docAndFreqBuffer);
- if (liveDocs != null && docAndFreqBuffer.size != 0) {
+ postingsEnum.nextPostings(upTo, buffer);
+ if (liveDocs != null && buffer.size != 0) {
// An empty return value indicates that there are no more docs before upTo. We may be
// unlucky, and there are docs left, but all docs from the current batch happen to be marked
// as deleted. So we need to iterate until we find a batch that has at least one non-deleted
// doc.
- docAndFreqBuffer.apply(liveDocs);
- if (docAndFreqBuffer.size == 0) {
+ buffer.apply(liveDocs);
+ if (buffer.size == 0) {
continue;
}
}
break;
}
- int size = docAndFreqBuffer.size;
+ int size = buffer.size;
if (normValues.length < size) {
normValues = new long[ArrayUtil.oversize(size, Long.BYTES)];
if (norms == null) {
@@ -162,7 +157,7 @@ public final class TermScorer extends Scorer {
}
if (norms != null) {
for (int i = 0; i < size; ++i) {
- if (norms.advanceExact(docAndFreqBuffer.docs[i])) {
+ if (norms.advanceExact(buffer.docs[i])) {
normValues[i] = norms.longValue();
} else {
normValues[i] = 1L;
@@ -170,13 +165,10 @@ public final class TermScorer extends Scorer {
}
}
- buffer.growNoCopy(size);
- buffer.size = size;
- System.arraycopy(docAndFreqBuffer.docs, 0, buffer.docs, 0, size);
for (int i = 0; i < size; ++i) {
// Unless SimScorer#score is megamorphic, SimScorer#score should inline and (part of) score
// computations should auto-vectorize.
- buffer.scores[i] = scorer.score(docAndFreqBuffer.freqs[i], normValues[i]);
+ buffer.features[i] = scorer.score(buffer.features[i], normValues[i]);
}
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java b/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
index 3264af9dc8b..c2dfa2e6e6a 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestTermScorer.java
@@ -281,7 +281,7 @@ public class TestTermScorer extends LuceneTestCase {
Scorer scorer2 = weight.scorer(context);
scorer1.iterator().nextDoc();
scorer2.iterator().nextDoc();
- DocAndScoreBuffer buffer = new DocAndScoreBuffer();
+ DocAndFloatFeatureBuffer buffer = new DocAndFloatFeatureBuffer();
while (true) {
int curDoc = scorer2.iterator().docID();
int upTo =
@@ -294,7 +294,7 @@ public class TestTermScorer extends LuceneTestCase {
scorer2.iterator().nextDoc();
}
assertEquals(scorer2.iterator().docID(), buffer.docs[i]);
- assertEquals(scorer2.score(), buffer.scores[i], 0f);
+ assertEquals(scorer2.score(), buffer.features[i], 0f);
scorer2.iterator().nextDoc();
}
diff --git a/lucene/test-framework/src/java/org/apache/lucene/tests/index/AssertingLeafReader.java b/lucene/test-framework/src/java/org/apache/lucene/tests/index/AssertingLeafReader.java
index 898d93fdc0f..256e13c514e 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/tests/index/AssertingLeafReader.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/tests/index/AssertingLeafReader.java
@@ -50,7 +50,7 @@ import org.apache.lucene.index.Terms;
import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.internal.tests.IndexPackageAccess;
import org.apache.lucene.internal.tests.TestSecrets;
-import org.apache.lucene.search.DocAndFreqBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
@@ -598,7 +598,7 @@ public class AssertingLeafReader extends FilterLeafReader {
}
@Override
- public void nextPostings(int upTo, DocAndFreqBuffer buffer) throws IOException {
+ public void nextPostings(int upTo, DocAndFloatFeatureBuffer buffer) throws IOException {
assert state != DocsEnumState.START : "nextPostings() called before nextDoc()/advance()";
in.nextPostings(upTo, buffer);
doc = in.docID();
diff --git a/lucene/test-framework/src/java/org/apache/lucene/tests/index/RandomPostingsTester.java b/lucene/test-framework/src/java/org/apache/lucene/tests/index/RandomPostingsTester.java
index d66d1667626..f8c6f93702d 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/tests/index/RandomPostingsTester.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/tests/index/RandomPostingsTester.java
@@ -66,7 +66,7 @@ import org.apache.lucene.index.VectorEncoding;
import org.apache.lucene.index.VectorSimilarityFunction;
import org.apache.lucene.internal.tests.IndexPackageAccess;
import org.apache.lucene.internal.tests.TestSecrets;
-import org.apache.lucene.search.DocAndFreqBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FlushInfo;
@@ -1443,7 +1443,7 @@ public class RandomPostingsTester {
pe1.nextDoc();
pe2.nextDoc();
- DocAndFreqBuffer buffer = new DocAndFreqBuffer();
+ DocAndFloatFeatureBuffer buffer = new DocAndFloatFeatureBuffer();
while (true) {
int curDoc = pe1.docID();
int upTo =
@@ -1454,7 +1454,7 @@ public class RandomPostingsTester {
for (int i = 0; i < buffer.size; ++i) {
assertTrue(buffer.docs[i] < upTo);
assertEquals(pe2.docID(), buffer.docs[i]);
- assertEquals(pe2.freq(), buffer.freqs[i]);
+ assertEquals(0f, pe2.freq(), buffer.features[i]);
pe2.nextDoc();
}
diff --git a/lucene/test-framework/src/java/org/apache/lucene/tests/search/AssertingScorer.java b/lucene/test-framework/src/java/org/apache/lucene/tests/search/AssertingScorer.java
index 1910a48d074..f0ef919761c 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/tests/search/AssertingScorer.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/tests/search/AssertingScorer.java
@@ -19,7 +19,7 @@ package org.apache.lucene.tests.search;
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
-import org.apache.lucene.search.DocAndScoreBuffer;
+import org.apache.lucene.search.DocAndFloatFeatureBuffer;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.FilterDocIdSetIterator;
import org.apache.lucene.search.Scorer;
@@ -286,7 +286,7 @@ public class AssertingScorer extends Scorer {
}
@Override
- public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndScoreBuffer buffer)
+ public void nextDocsAndScores(int upTo, Bits liveDocs, DocAndFloatFeatureBuffer buffer)
throws IOException {
assert doc != -1;
in.nextDocsAndScores(upTo, liveDocs, buffer);