From f9c2df443d19eafce2e16b64aae9d69cea741c1e Mon Sep 17 00:00:00 2001 From: Tejas Shah Date: Fri, 11 Oct 2024 21:28:31 -0700 Subject: [PATCH] Overrides getMergeInstance for NativeEngine99VectorReader Signed-off-by: Tejas Shah --- .../NativeEngines990KnnVectorsReader.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/opensearch/knn/index/codec/KNN990Codec/NativeEngines990KnnVectorsReader.java b/src/main/java/org/opensearch/knn/index/codec/KNN990Codec/NativeEngines990KnnVectorsReader.java index 16631fd97..f9bbca3ec 100644 --- a/src/main/java/org/opensearch/knn/index/codec/KNN990Codec/NativeEngines990KnnVectorsReader.java +++ b/src/main/java/org/opensearch/knn/index/codec/KNN990Codec/NativeEngines990KnnVectorsReader.java @@ -11,6 +11,7 @@ package org.opensearch.knn.index.codec.KNN990Codec; +import lombok.extern.log4j.Log4j2; import org.apache.lucene.codecs.KnnVectorsReader; import org.apache.lucene.codecs.hnsw.FlatVectorsReader; import org.apache.lucene.index.ByteVectorValues; @@ -37,6 +38,7 @@ * Vectors reader class for reading the flat vectors for native engines. The class provides methods for iterating * over the vectors and retrieving their values. */ +@Log4j2 public class NativeEngines990KnnVectorsReader extends KnnVectorsReader { private final FlatVectorsReader flatVectorsReader; @@ -49,6 +51,12 @@ public NativeEngines990KnnVectorsReader(final SegmentReadState state, final Flat loadCacheKeyMap(); } + private NativeEngines990KnnVectorsReader(final NativeEngines990KnnVectorsReader reader, final FlatVectorsReader flatVectorsReader) { + this.segmentReadState = reader.segmentReadState; + this.flatVectorsReader = flatVectorsReader; + quantizationStateCacheKeyPerField = reader.quantizationStateCacheKeyPerField; + } + /** * Checks consistency of this reader. * @@ -161,6 +169,12 @@ public void search(String field, byte[] target, KnnCollector knnCollector, Bits throw new UnsupportedOperationException("Search functionality using codec is not supported with Native Engine Reader"); } + @Override + public KnnVectorsReader getMergeInstance() { + log.info("Getting merge instance for NativeEngines990KnnVectorsReader"); + return new NativeEngines990KnnVectorsReader(this, flatVectorsReader.getMergeInstance()); + } + /** * Closes this stream and releases any system resources associated * with it. If the stream is already closed then invoking this