
上一章我们沿着CreateIndex追到了 C++IndexFactory和 Knowhere,理解了索引如何从用户参数变成 Segment 级索引文件。但索引构建完成之后,数据还不能立刻被搜索。原因很直接:索引构建完成 - 只是说明对象存储里有可用的索引文件 - QueryNode 还没有把 Collection / Partition / Segment / Channel 加载到可服务状态 - Proxy 也还不知道应该把搜索请求路由给哪些 QueryNode所以搜索前还需要一个动作:LoadCollection / LoadPartitions这一章进入 QueryCoord v2,分析它如何把用户的 Load 请求拆成调度动作,并最终让 QueryNode 具备搜索能力。本章关注的问题是:用户说:我要加载一个 Collection Milvus 如何决定: 1. 加载哪些 Partition? 2. 加载哪些 sealed Segment? 3. 订阅哪些 DML Channel? 4. 每个 Replica 放到哪些 QueryNode? 5. 什么时候认为加载完成? 6. QueryCoord 如何向 QueryN