|
19 | 19 | import org.apache.lucene.store.MMapDirectory; |
20 | 20 | import org.apache.lucene.util.hnsw.RandomVectorScorer; |
21 | 21 | import org.apache.lucene.util.hnsw.RandomVectorScorerSupplier; |
| 22 | +import org.apache.lucene.util.hnsw.UpdateableRandomVectorScorer; |
22 | 23 | import org.apache.lucene.util.quantization.QuantizedByteVectorValues; |
23 | 24 | import org.apache.lucene.util.quantization.ScalarQuantizer; |
24 | 25 | import org.elasticsearch.common.logging.LogConfigurator; |
@@ -76,10 +77,10 @@ public class VectorScorerBenchmark { |
76 | 77 | float vec2Offset; |
77 | 78 | float scoreCorrectionConstant; |
78 | 79 |
|
79 | | - RandomVectorScorer luceneDotScorer; |
80 | | - RandomVectorScorer luceneSqrScorer; |
81 | | - RandomVectorScorer nativeDotScorer; |
82 | | - RandomVectorScorer nativeSqrScorer; |
| 80 | + UpdateableRandomVectorScorer luceneDotScorer; |
| 81 | + UpdateableRandomVectorScorer luceneSqrScorer; |
| 82 | + UpdateableRandomVectorScorer nativeDotScorer; |
| 83 | + UpdateableRandomVectorScorer nativeSqrScorer; |
83 | 84 |
|
84 | 85 | RandomVectorScorer luceneDotScorerQuery; |
85 | 86 | RandomVectorScorer nativeDotScorerQuery; |
@@ -118,12 +119,16 @@ public void setup() throws IOException { |
118 | 119 | in = dir.openInput("vector.data", IOContext.DEFAULT); |
119 | 120 | var values = vectorValues(dims, 2, in, VectorSimilarityFunction.DOT_PRODUCT); |
120 | 121 | scoreCorrectionConstant = values.getScalarQuantizer().getConstantMultiplier(); |
121 | | - luceneDotScorer = luceneScoreSupplier(values, VectorSimilarityFunction.DOT_PRODUCT).scorer(0); |
| 122 | + luceneDotScorer = luceneScoreSupplier(values, VectorSimilarityFunction.DOT_PRODUCT).scorer(); |
| 123 | + luceneDotScorer.setScoringOrdinal(0); |
122 | 124 | values = vectorValues(dims, 2, in, VectorSimilarityFunction.EUCLIDEAN); |
123 | | - luceneSqrScorer = luceneScoreSupplier(values, VectorSimilarityFunction.EUCLIDEAN).scorer(0); |
| 125 | + luceneSqrScorer = luceneScoreSupplier(values, VectorSimilarityFunction.EUCLIDEAN).scorer(); |
| 126 | + luceneSqrScorer.setScoringOrdinal(0); |
124 | 127 |
|
125 | | - nativeDotScorer = factory.getInt7SQVectorScorerSupplier(DOT_PRODUCT, in, values, scoreCorrectionConstant).get().scorer(0); |
126 | | - nativeSqrScorer = factory.getInt7SQVectorScorerSupplier(EUCLIDEAN, in, values, scoreCorrectionConstant).get().scorer(0); |
| 128 | + nativeDotScorer = factory.getInt7SQVectorScorerSupplier(DOT_PRODUCT, in, values, scoreCorrectionConstant).get().scorer(); |
| 129 | + nativeDotScorer.setScoringOrdinal(0); |
| 130 | + nativeSqrScorer = factory.getInt7SQVectorScorerSupplier(EUCLIDEAN, in, values, scoreCorrectionConstant).get().scorer(); |
| 131 | + nativeSqrScorer.setScoringOrdinal(0); |
127 | 132 |
|
128 | 133 | // setup for getInt7SQVectorScorer / query vector scoring |
129 | 134 | float[] queryVec = new float[dims]; |
|
0 commit comments