Skip to content

Commit 6c2f607

Browse files
authored
Refactor/bbq format (#117847)
* Refactor bbq format to be contained in a package * fixing license headers * fixing module * fix style
1 parent c54d4b6 commit 6c2f607

15 files changed

+45
-31
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -457,8 +457,8 @@
457457
org.elasticsearch.index.codec.vectors.ES814HnswScalarQuantizedVectorsFormat,
458458
org.elasticsearch.index.codec.vectors.ES815HnswBitVectorsFormat,
459459
org.elasticsearch.index.codec.vectors.ES815BitFlatVectorFormat,
460-
org.elasticsearch.index.codec.vectors.ES816BinaryQuantizedVectorsFormat,
461-
org.elasticsearch.index.codec.vectors.ES816HnswBinaryQuantizedVectorsFormat;
460+
org.elasticsearch.index.codec.vectors.es816.ES816BinaryQuantizedVectorsFormat,
461+
org.elasticsearch.index.codec.vectors.es816.ES816HnswBinaryQuantizedVectorsFormat;
462462

463463
provides org.apache.lucene.codecs.Codec
464464
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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,12 @@
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.ByteVectorValues;
2323
import org.apache.lucene.search.VectorScorer;
2424
import org.apache.lucene.util.VectorUtil;
25+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
2526

2627
import java.io.IOException;
2728

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.KnnVectorValues;
@@ -26,6 +26,8 @@
2626
import org.apache.lucene.util.VectorUtil;
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 BinarizedByteVectorValues 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
BinarizedByteVectorValues 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;
@@ -43,6 +43,7 @@
4343
import org.apache.lucene.util.SuppressForbidden;
4444
import org.apache.lucene.util.hnsw.OrdinalTranslatedKnnCollector;
4545
import org.apache.lucene.util.hnsw.RandomVectorScorer;
46+
import org.elasticsearch.index.codec.vectors.BQVectorUtils;
4647

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

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

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

67-
public ES816BinaryQuantizedVectorsReader(
68+
ES816BinaryQuantizedVectorsReader(
6869
SegmentReadState state,
6970
FlatVectorsReader rawVectorsReader,
7071
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 {
41+
abstract class OffHeapBinarizedVectorValues extends BinarizedByteVectorValues {
4142

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

253254
/** Dense off-heap binarized vector values */
254-
public static class DenseOffHeapVectorValues extends OffHeapBinarizedVectorValues {
255-
public DenseOffHeapVectorValues(
255+
static class DenseOffHeapVectorValues extends OffHeapBinarizedVectorValues {
256+
DenseOffHeapVectorValues(
256257
int dimension,
257258
int size,
258259
float[] centroid,

server/src/main/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@
4646
import org.elasticsearch.index.codec.vectors.ES814HnswScalarQuantizedVectorsFormat;
4747
import org.elasticsearch.index.codec.vectors.ES815BitFlatVectorFormat;
4848
import org.elasticsearch.index.codec.vectors.ES815HnswBitVectorsFormat;
49-
import org.elasticsearch.index.codec.vectors.ES816BinaryQuantizedVectorsFormat;
50-
import org.elasticsearch.index.codec.vectors.ES816HnswBinaryQuantizedVectorsFormat;
49+
import org.elasticsearch.index.codec.vectors.es816.ES816BinaryQuantizedVectorsFormat;
50+
import org.elasticsearch.index.codec.vectors.es816.ES816HnswBinaryQuantizedVectorsFormat;
5151
import org.elasticsearch.index.fielddata.FieldDataContext;
5252
import org.elasticsearch.index.fielddata.IndexFieldData;
5353
import org.elasticsearch.index.mapper.ArraySourceValueFetcher;

0 commit comments

Comments
 (0)