feat: search_iterator over emb_list (ArrayOfVector) fields - #50389
feat: search_iterator over emb_list (ArrayOfVector) fields#50389DashUmEr wants to merge 2 commits into
Conversation
|
Welcome @DashUmEr! It looks like this is your first PR to milvus-io/milvus 🎉 |
|
@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. |
|
@DashUmEr Please associate the related pr of master to the body of your Pull Request. (eg. "pr: #") |
|
@DashUmEr This is a feature PR ( How to resolve: |
|
[INFO] PR Label Summary by Default
[WARNING] Milestone not set
You can set milestone by commenting: 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>
df7be45 to
8850990
Compare
|
[INFO] PR Label Summary by Default
[WARNING] Milestone not set
You can set milestone by commenting: Use /refresh-label to update related check and label manually |
Signed-off-by: David <david@41zero.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: DashUmEr The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
[INFO] PR Label Summary by Default
[WARNING] Milestone not set
You can set milestone by commenting: 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:
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