JingsongLi opened a new pull request, #23: URL: https://github.com/apache/paimon-vector-index/pull/23
## Summary This PR introduces a unified vector index API across Rust, Java/JNI, and Python. Writers are created from typed configs, readers auto-detect the index type from the file header, and HNSW-backed indexes are now exposed through the bindings. ## Changes - Add a Rust `index` facade with `IndexType`, `VectorIndexConfig`, `VectorIndexWriter`, `VectorIndexReader`, search params, and metadata. - Support IVF-FLAT, IVF-PQ, IVF-HNSW-FLAT, and IVF-HNSW-SQ through the unified Rust API. - Replace Java's separate IVF-PQ and IVF-FLAT public APIs with `VectorIndexWriter`, `VectorIndexReader`, typed config classes, metadata, and unified result containers. - Refactor JNI to one enum-backed native API using the Rust unified reader/writer types. - Replace Python's separate reader/writer classes with `VectorIndexWriter`, `VectorIndexReader`, typed config classes, metadata, and HNSW config support. - Update README examples and binding documentation to describe the unified API. ## Testing - [x] `cargo test --workspace` - [x] `cargo test --manifest-path python/Cargo.toml --features auto-initialize --no-default-features -- --nocapture` - [x] `javac -d /tmp/paimon-vindex-java-test $(rg --files jni/java jni/java-test | tr '\n' ' ') && java -cp /tmp/paimon-vindex-java-test org.apache.paimon.index.ivfpq.VectorIndexJavaApiTest` ## Notes This intentionally removes the old Java public classes such as `IVFPQReader`, `IVFPQWriter`, `IVFFlatReader`, and `IVFFlatWriter` because there is no compatibility requirement for the current API surface. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
