Skip to content

Commit be56edc

Browse files
authored
[8.x] Refactor/bbq format (#117847) (#117860)
* Refactor/bbq format (#117847) * Refactor bbq format to be contained in a package * fixing license headers * fixing module * fix style (cherry picked from commit 6c2f607) * fixing backport
1 parent 7ffbb7e commit be56edc

16 files changed

+46
-32
lines changed

server/src/main/java/module-info.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -454,8 +454,8 @@
454454
org.elasticsearch.index.codec.vectors.ES814HnswScalarQuantizedVectorsFormat,
455455
org.elasticsearch.index.codec.vectors.ES815HnswBitVectorsFormat,
456456
org.elasticsearch.index.codec.vectors.ES815BitFlatVectorFormat,
457-
org.elasticsearch.index.codec.vectors.ES816BinaryQuantizedVectorsFormat,
458-
org.elasticsearch.index.codec.vectors.ES816HnswBinaryQuantizedVectorsFormat;
457+
org.elasticsearch.index.codec.vectors.es816.ES816BinaryQuantizedVectorsFormat,
458+
org.elasticsearch.index.codec.vectors.es816.ES816HnswBinaryQuantizedVectorsFormat;
459459

460460
provides org.apache.lucene.codecs.Codec
461461
with

server/src/main/java/org/elasticsearch/index/codec/vectors/BinarizedByteVectorValues.java renamed to server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinarizedByteVectorValues.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.search.DocIdSetIterator;
2323
import org.apache.lucene.search.VectorScorer;

server/src/main/java/org/elasticsearch/index/codec/vectors/BinaryQuantizer.java renamed to server/src/main/java/org/elasticsearch/index/codec/vectors/es816/BinaryQuantizer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,13 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.index.VectorSimilarityFunction;
2323
import org.apache.lucene.util.ArrayUtil;
2424
import org.apache.lucene.util.VectorUtil;
25+
import org.elasticsearch.index.codec.vectors.BQSpaceUtils;
26+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
2527

2628
import static org.apache.lucene.index.VectorSimilarityFunction.COSINE;
2729
import static org.apache.lucene.index.VectorSimilarityFunction.EUCLIDEAN;

server/src/main/java/org/elasticsearch/index/codec/vectors/ES816BinaryFlatVectorsScorer.java renamed to server/src/main/java/org/elasticsearch/index/codec/vectors/es816/ES816BinaryFlatVectorsScorer.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.hnsw.FlatVectorsScorer;
2323
import org.apache.lucene.index.VectorSimilarityFunction;
@@ -26,6 +26,8 @@
2626
import org.apache.lucene.util.hnsw.RandomAccessVectorValues;
2727
import org.apache.lucene.util.hnsw.RandomVectorScorer;
2828
import org.apache.lucene.util.hnsw.RandomVectorScorerSupplier;
29+
import org.elasticsearch.index.codec.vectors.BQSpaceUtils;
30+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
2931
import org.elasticsearch.simdvec.ESVectorUtil;
3032

3133
import java.io.IOException;
@@ -35,10 +37,10 @@
3537
import static org.apache.lucene.index.VectorSimilarityFunction.MAXIMUM_INNER_PRODUCT;
3638

3739
/** Vector scorer over binarized vector values */
38-
public class ES816BinaryFlatVectorsScorer implements FlatVectorsScorer {
40+
class ES816BinaryFlatVectorsScorer implements FlatVectorsScorer {
3941
private final FlatVectorsScorer nonQuantizedDelegate;
4042

41-
public ES816BinaryFlatVectorsScorer(FlatVectorsScorer nonQuantizedDelegate) {
43+
ES816BinaryFlatVectorsScorer(FlatVectorsScorer nonQuantizedDelegate) {
4244
this.nonQuantizedDelegate = nonQuantizedDelegate;
4345
}
4446

@@ -144,18 +146,18 @@ public RandomVectorScorerSupplier copy() throws IOException {
144146
}
145147

146148
/** A binarized query representing its quantized form along with factors */
147-
public record BinaryQueryVector(byte[] vector, BinaryQuantizer.QueryFactors factors) {}
149+
record BinaryQueryVector(byte[] vector, BinaryQuantizer.QueryFactors factors) {}
148150

149151
/** Vector scorer over binarized vector values */
150-
public static class BinarizedRandomVectorScorer extends RandomVectorScorer.AbstractRandomVectorScorer {
152+
static class BinarizedRandomVectorScorer extends RandomVectorScorer.AbstractRandomVectorScorer {
151153
private final BinaryQueryVector queryVector;
152154
private final RandomAccessBinarizedByteVectorValues targetVectors;
153155
private final VectorSimilarityFunction similarityFunction;
154156

155157
private final float sqrtDimensions;
156158
private final float maxX1;
157159

158-
public BinarizedRandomVectorScorer(
160+
BinarizedRandomVectorScorer(
159161
BinaryQueryVector queryVectors,
160162
RandomAccessBinarizedByteVectorValues targetVectors,
161163
VectorSimilarityFunction similarityFunction
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.hnsw.FlatVectorScorerUtil;
2323
import org.apache.lucene.codecs.hnsw.FlatVectorsFormat;
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.CodecUtil;
2323
import org.apache.lucene.codecs.hnsw.FlatVectorsReader;
@@ -42,6 +42,7 @@
4242
import org.apache.lucene.util.SuppressForbidden;
4343
import org.apache.lucene.util.hnsw.OrdinalTranslatedKnnCollector;
4444
import org.apache.lucene.util.hnsw.RandomVectorScorer;
45+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
4546

4647
import java.io.IOException;
4748
import java.util.HashMap;
@@ -54,7 +55,7 @@
5455
* Copied from Lucene, replace with Lucene's implementation sometime after Lucene 10
5556
*/
5657
@SuppressForbidden(reason = "Lucene classes")
57-
public class ES816BinaryQuantizedVectorsReader extends FlatVectorsReader {
58+
class ES816BinaryQuantizedVectorsReader extends FlatVectorsReader {
5859

5960
private static final long SHALLOW_SIZE = RamUsageEstimator.shallowSizeOfInstance(ES816BinaryQuantizedVectorsReader.class);
6061

@@ -63,7 +64,7 @@ public class ES816BinaryQuantizedVectorsReader extends FlatVectorsReader {
6364
private final FlatVectorsReader rawVectorsReader;
6465
private final ES816BinaryFlatVectorsScorer vectorScorer;
6566

66-
public ES816BinaryQuantizedVectorsReader(
67+
ES816BinaryQuantizedVectorsReader(
6768
SegmentReadState state,
6869
FlatVectorsReader rawVectorsReader,
6970
ES816BinaryFlatVectorsScorer vectorsScorer
Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.CodecUtil;
2323
import org.apache.lucene.codecs.KnnVectorsReader;
@@ -48,6 +48,8 @@
4848
import org.apache.lucene.util.hnsw.RandomVectorScorer;
4949
import org.apache.lucene.util.hnsw.RandomVectorScorerSupplier;
5050
import org.elasticsearch.core.SuppressForbidden;
51+
import org.elasticsearch.index.codec.vectors.BQSpaceUtils;
52+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
5153

5254
import java.io.Closeable;
5355
import java.io.IOException;
@@ -61,14 +63,14 @@
6163
import static org.apache.lucene.index.VectorSimilarityFunction.EUCLIDEAN;
6264
import static org.apache.lucene.search.DocIdSetIterator.NO_MORE_DOCS;
6365
import static org.apache.lucene.util.RamUsageEstimator.shallowSizeOfInstance;
64-
import static org.elasticsearch.index.codec.vectors.ES816BinaryQuantizedVectorsFormat.BINARIZED_VECTOR_COMPONENT;
65-
import static org.elasticsearch.index.codec.vectors.ES816BinaryQuantizedVectorsFormat.DIRECT_MONOTONIC_BLOCK_SHIFT;
66+
import static org.elasticsearch.index.codec.vectors.es816.ES816BinaryQuantizedVectorsFormat.BINARIZED_VECTOR_COMPONENT;
67+
import static org.elasticsearch.index.codec.vectors.es816.ES816BinaryQuantizedVectorsFormat.DIRECT_MONOTONIC_BLOCK_SHIFT;
6668

6769
/**
6870
* Copied from Lucene, replace with Lucene's implementation sometime after Lucene 10
6971
*/
7072
@SuppressForbidden(reason = "Lucene classes")
71-
public class ES816BinaryQuantizedVectorsWriter extends FlatVectorsWriter {
73+
class ES816BinaryQuantizedVectorsWriter extends FlatVectorsWriter {
7274
private static final long SHALLOW_RAM_BYTES_USED = shallowSizeOfInstance(ES816BinaryQuantizedVectorsWriter.class);
7375

7476
private final SegmentWriteState segmentWriteState;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.KnnVectorsFormat;
2323
import org.apache.lucene.codecs.KnnVectorsReader;

server/src/main/java/org/elasticsearch/index/codec/vectors/OffHeapBinarizedVectorValues.java renamed to server/src/main/java/org/elasticsearch/index/codec/vectors/es816/OffHeapBinarizedVectorValues.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.codecs.hnsw.FlatVectorsScorer;
2323
import org.apache.lucene.codecs.lucene90.IndexedDISI;
@@ -29,6 +29,7 @@
2929
import org.apache.lucene.util.Bits;
3030
import org.apache.lucene.util.hnsw.RandomVectorScorer;
3131
import org.apache.lucene.util.packed.DirectMonotonicReader;
32+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
3233

3334
import java.io.IOException;
3435
import java.nio.ByteBuffer;
@@ -37,7 +38,7 @@
3738
import static org.elasticsearch.index.codec.vectors.BQVectorUtils.constSqrt;
3839

3940
/** Binarized vector values loaded from off-heap */
40-
public abstract class OffHeapBinarizedVectorValues extends BinarizedByteVectorValues implements RandomAccessBinarizedByteVectorValues {
41+
abstract class OffHeapBinarizedVectorValues extends BinarizedByteVectorValues implements RandomAccessBinarizedByteVectorValues {
4142

4243
protected final int dimension;
4344
protected final int size;
@@ -251,10 +252,10 @@ public static OffHeapBinarizedVectorValues load(
251252
}
252253

253254
/** Dense off-heap binarized vector values */
254-
public static class DenseOffHeapVectorValues extends OffHeapBinarizedVectorValues {
255+
static class DenseOffHeapVectorValues extends OffHeapBinarizedVectorValues {
255256
private int doc = -1;
256257

257-
public DenseOffHeapVectorValues(
258+
DenseOffHeapVectorValues(
258259
int dimension,
259260
int size,
260261
float[] centroid,
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@
1717
*
1818
* Modifications copyright (C) 2024 Elasticsearch B.V.
1919
*/
20-
package org.elasticsearch.index.codec.vectors;
20+
package org.elasticsearch.index.codec.vectors.es816;
2121

2222
import org.apache.lucene.util.VectorUtil;
2323
import org.apache.lucene.util.hnsw.RandomAccessVectorValues;
24+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
2425

2526
import java.io.IOException;
2627

0 commit comments

Comments
 (0)