jerry-024 commented on PR #85: URL: https://github.com/apache/paimon-vector-index/pull/85#issuecomment-5505837002
Thanks for the detailed review. Addressed in `8c706af`. 1. We are keeping automatic Vamana coarse assignment as an explicit build-speed/recall tradeoff rather than changing search-side list selection. All option-map APIs now accept `ivf.coarse-assignment=auto|exact`. `auto` preserves the thresholded Vamana behavior; `exact` disables the graph and restores exact nearest-centroid assignment. Rust config literals expose the same choice through `use_approximate_coarse_assignment`, and the four direct IVF index types expose `set_approximate_coarse_assignment(...)`. The API and per-index docs now state that automatic graph assignment may select a different list from exact search, can reduce recall at small `nprobe`, and does not guarantee self-recall at `nprobe=1`. A threshold-enabled regression test verifies that `exact` preserves self-recall with `d=256`, `nlist=4096`, and `nprobe=1`. 2. Empty assignments now return before graph preparation, including the separate IVF-RQ preparation path. Small non-empty batches still pay the graph startup cost when automatic assignment is enabled; this is documented, and users can select `exact` to avoid it. 3. `preprocess_vectors` now skips cosine chunking when `d == 0`, with coverage for both the serial and parallel thresholds. Verification: `cargo test --workspace` passed 496 tests with 2 ignored; `cargo clippy --workspace --all-targets -- -D warnings`, formatting, and `git diff --check` all passed. -- 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]
