lance-format / lance-format/lance

Add partition-level pruning for serial vector search

Open
#6,825 0 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.