Skip to content

feat: search_iterator over emb_list (ArrayOfVector) fields - #50389

Draft
DashUmEr wants to merge 2 commits into
milvus-io:2.6from
41zero:upstream-pr/emblist-iterator
Draft

feat: search_iterator over emb_list (ArrayOfVector) fields#50389
DashUmEr wants to merge 2 commits into
milvus-io:2.6from
41zero:upstream-pr/emblist-iterator

Conversation

@DashUmEr

@DashUmEr DashUmEr commented Jun 8, 2026

Copy link
Copy Markdown

Enables search_iterator() over emb_list / ArrayOfVector fields (MAX_SIM) via the
stateless Iterator-v2 path:

  • segcore: CachedSearchIterator drives knowhere's emb_list AnnIterator (sealed index path).
  • proxy: lifts the rejection of search_iterator over emb_list fields.
  • graceful failure: brute-force / growing-segment iterator paths (no emb_list AnnIterator
    yet — a v1 deferral) now return a clean typed Unsupported error, not an assertion.

Depends on the knowhere AnnIterator PR (zilliztech/knowhere#1668). The knowhere
pin is intentionally NOT bumped here — it bumps when that PR merges.

Design + evidence: #49906. Live recall vs an exact MAX_SIM oracle on 150k
Design + evidence: #49906. Live recall vs an exact MAX_SIM oracle on 150k
real Wikipedia articles: recall@100=1.0, recall@1000≈0.997, ordering ρ=1.0; bounded memory
confirmed; 32 concurrent iterators completed with zero OOMKilled.
Tests: CachedSearchIteratorTest.cpp (120 cases), proxy task_search_test.go.
Targets 2.6; can retarget master. Draft for early visibility.

Regarding: #49906

@sre-ci-robot sre-ci-robot added the do-not-merge/work-in-progress Don't merge even CI passed. label Jun 8, 2026
@sre-ci-robot

Copy link
Copy Markdown
Contributor

Welcome @DashUmEr! It looks like this is your first PR to milvus-io/milvus 🎉

@sre-ci-robot sre-ci-robot added the size/L Denotes a PR that changes 100-499 lines. label Jun 8, 2026
@mergify

mergify Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@DashUmEr Thanks for your contribution. Please submit with DCO, see the contributing guide https://github.com/milvus-io/milvus/blob/master/CONTRIBUTING.md#developer-certificate-of-origin-dco.

@mergify mergify Bot added the needs-dco DCO is missing in this pull request. label Jun 8, 2026
@mergify

mergify Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@DashUmEr Please associate the related pr of master to the body of your Pull Request. (eg. "pr: #")

@mergify

mergify Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

@DashUmEr This is a feature PR (feat:). Please provide a design document.

How to resolve:
Add a design document under docs/design-docs/design_docs/ in this PR, or link an existing in-repo design document in the PR description:

design doc: docs/design-docs/design_docs/YYYYMMDD-your_design.md

@mergify mergify Bot added do-not-merge/missing-design-doc kind/feature Issues related to feature request from users labels Jun 8, 2026
@sre-ci-robot sre-ci-robot added do-not-merge/need-merge-master-first any pr merge to release branch need to merge master first do-not-merge/need-milestone generate by v2-label-manager labels Jun 8, 2026
@sre-ci-robot

Copy link
Copy Markdown
Contributor

[INFO] PR Label Summary by Default
[WARNING] No dependent PR reference found

  • Target branch '2.6' requires a PR merged to master first
  • Please add reference in format 'pr: #number'

[WARNING] Milestone not set

You can set milestone by commenting:
/set-milestone
Example:
/set-milestone 2.5.0

Use /refresh-label to update related check and label manually

Enables search_iterator() over emb_list / ArrayOfVector fields (MAX_SIM) via the
stateless Iterator-v2 path:
- segcore: CachedSearchIterator drives knowhere's emb_list AnnIterator on the
  sealed vector-index path.
- proxy: lifts the rejection of search_iterator over emb_list fields.
- brute-force / growing-segment paths (no emb_list iterator yet) now return a
  clean, typed "not supported" error instead of an internal assertion.

Depends on knowhere emb_list/sparse AnnIterator support (knowhere pin bumps on
merge). Part of milvus-io#49906.

Signed-off-by: David <david@41zero.com>
@DashUmEr
DashUmEr force-pushed the upstream-pr/emblist-iterator branch from df7be45 to 8850990 Compare June 8, 2026 21:22
@mergify mergify Bot added dco-passed DCO check passed. and removed needs-dco DCO is missing in this pull request. labels Jun 8, 2026
@sre-ci-robot

Copy link
Copy Markdown
Contributor

[INFO] PR Label Summary by Default
[WARNING] No dependent PR reference found

  • Target branch '2.6' requires a PR merged to master first
  • Please add reference in format 'pr: #number'

[WARNING] Milestone not set

You can set milestone by commenting:
/set-milestone
Example:
/set-milestone 2.5.0

Use /refresh-label to update related check and label manually

@sre-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: DashUmEr
To complete the pull request process, please assign xiaofan-luan after the PR has been reviewed.
You can assign the PR to them by writing /assign @xiaofan-luan in a comment when ready.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sre-ci-robot

Copy link
Copy Markdown
Contributor

[INFO] PR Label Summary by Default
[WARNING] No dependent PR reference found

  • Target branch '2.6' requires a PR merged to master first
  • Please add reference in format 'pr: #number'

[WARNING] Milestone not set

You can set milestone by commenting:
/set-milestone
Example:
/set-milestone 2.5.0

Use /refresh-label to update related check and label manually

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-passed DCO check passed. do-not-merge/missing-related-pr do-not-merge/need-merge-master-first any pr merge to release branch need to merge master first do-not-merge/need-milestone generate by v2-label-manager do-not-merge/work-in-progress Don't merge even CI passed. kind/feature Issues related to feature request from users size/L Denotes a PR that changes 100-499 lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants