Milvus 源码学习系列 | 第 18 章:搜索链路一:Proxy 如何构造 Search 请求

📅 2026/7/8 12:32:41 👁️ 阅读次数 📝 编程学习
Milvus 源码学习系列 | 第 18 章:搜索链路一:Proxy 如何构造 Search 请求

上一章我们进入 QueryNode v2,理解了 QueryNode 如何维护 SegmentManager、Pipeline、Delegator、Distribution、DeleteBuffer 和 tSafe。

从查询链路看,QueryNode 已经具备了两个能力:

1. 知道某个 shard 当前有哪些 sealed / growing Segment 可读。 2. 能在指定 guarantee timestamp 下执行 Search / Query。

但用户不会直接调用 QueryNode。

用户调用的是 Milvus API:

client.search( collection_name=..., data=..., anns_field=..., search_params=..., expr=..., output_fields=..., consistency_level=..., )

这类请求首先进入 Proxy。

所以这一章先不进入 segcore,也不展开 C++ 向量检索细节,而是回答:

Proxy 收到 Search 请求后,如何把一组用户参数变成 QueryNode 能执行的内部请求?

本章会重点分析: