lance-format / lance-format/lance
Add partition-level pruning for serial vector search
Open
@BubbleCal is already working on this.
Since May 18, 2026.
A-index
enhancement
performance
rust
- Dominant language
- Rust
- Stars
- 7.1k
- Forks
- 852
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 272
Description
Parent: #6820
Linear: https://linear.app/lancedb/issue/OSS-927/add-partition-level-pruning-for-serial-vector-search
Linear parent: https://linear.app/lancedb/issue/OSS-922/vector-search-performance-optimization-roadmap
Goal
Use serial partition processing in the vector search path to prune entire partitions when they cannot improve the current top-k frontier.
Scope
- Define a valid partition lower-bound strategy for the relevant index types / distance metrics.
- Maintain a global top-k threshold as partitions are searched serially.
- Skip partitions whose lower bound cannot beat the current threshold.
- Preserve recall/correctness guarantees implied by the index and query parameters.
- Make pruning decisions observable enough for benchmarking and debugging.
Acceptance criteria
- Tests cover pruning and no-pruning cases, including edge cases where lower bounds tie the current threshold.
- Recall is unchanged versus the non-pruning path for the same query parameters.
- Benchmarks report partitions visited, partitions pruned, latency, and recall.
- The implementation is gated or disabled when the lower-bound assumptions are not valid for the metric/index type.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.