From e1098bb2ec481f5e94bf5b801a3bbb5eca574ef0 Mon Sep 17 00:00:00 2001 From: syaojun Date: Sat, 28 Feb 2026 22:50:05 +0800 Subject: [PATCH] fix: update RocksdbClient to use getDeclaredConstructor for options instantiation and replace deprecated KnnVectorField with KnnFloatVectorField in GraphVectorIndex --- .../apache/geaflow/store/rocksdb/RocksdbClient.java | 2 +- .../apache/geaflow/store/lucene/GraphVectorIndex.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-rocksdb/src/main/java/org/apache/geaflow/store/rocksdb/RocksdbClient.java b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-rocksdb/src/main/java/org/apache/geaflow/store/rocksdb/RocksdbClient.java index 42e75c0f2..b75eb4f00 100644 --- a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-rocksdb/src/main/java/org/apache/geaflow/store/rocksdb/RocksdbClient.java +++ b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-rocksdb/src/main/java/org/apache/geaflow/store/rocksdb/RocksdbClient.java @@ -88,7 +88,7 @@ private void initRocksDbOptions() { if (this.rocksDBOptions == null || this.rocksDBOptions.isClosed()) { LOGGER.info("rocksdb optionClass {}", optionClass); try { - this.rocksDBOptions = (IRocksDBOptions) Class.forName(optionClass).newInstance(); + this.rocksDBOptions = (IRocksDBOptions) Class.forName(optionClass).getDeclaredConstructor().newInstance(); this.rocksDBOptions.init(config); } catch (Throwable e) { LOGGER.error("{} not found", optionClass); diff --git a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java index ed49e667c..9a76b6b36 100644 --- a/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java +++ b/geaflow/geaflow-plugins/geaflow-store/geaflow-store-vector/src/main/java/org/apache/geaflow/store/lucene/GraphVectorIndex.java @@ -23,7 +23,7 @@ import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; -import org.apache.lucene.document.KnnVectorField; +import org.apache.lucene.document.KnnFloatVectorField; import org.apache.lucene.document.StoredField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.DirectoryReader; @@ -31,7 +31,7 @@ import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.search.IndexSearcher; -import org.apache.lucene.search.KnnVectorQuery; +import org.apache.lucene.search.KnnFloatVectorQuery; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.ByteBuffersDirectory; import org.apache.lucene.store.Directory; @@ -107,7 +107,7 @@ public void addVectorIndex(boolean isVertex, K key, String fieldName, float[] ve } // Add vector field - doc.add(new KnnVectorField(fieldName, vector)); + doc.add(new KnnFloatVectorField(fieldName, vector)); // Add document to index writer.addDocument(doc); @@ -142,12 +142,12 @@ public K searchVectorIndex(boolean isVertex, String fieldName, float[] vector, i IndexSearcher searcher = new IndexSearcher(reader); // Create KNN vector query - KnnVectorQuery knnQuery = new KnnVectorQuery(fieldName, vector, topK); + KnnFloatVectorQuery knnQuery = new KnnFloatVectorQuery(fieldName, vector, topK); // Execute search TopDocs topDocs = searcher.search(knnQuery, topK); - Document firstDoc = searcher.doc(topDocs.scoreDocs[0].doc); + Document firstDoc = searcher.storedFields().document(topDocs.scoreDocs[0].doc); K result; if (keyClass == String.class) {