鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

原理描述

Milvus在每次进行查询前,都会对使用的索引算法进行验证,这一切都在INDEX_NODE中完成。只有当验证通过,QUERY_NODE才会调用对应索引算法中的接口,进行查询的一系列操作。以上两个节点的操作都是用Go语言实现。Milvus的整体查询结构如下图1所示。

图1 Milvus整体查询架构

索引算法的关键组件叫做Knowhere,主要用C++实现,会链接核心的索引算法(如Faiss或HNSW等)和CGO接口,进行调用。

综上所述,引入KBest算法,需要在两个方面进行处理。

  1. 在INDEX_NODE中添加对于KBest算法的验证,此处用Go语言实现。
  2. 在Knowhere组件中,引入对于KBest的对接实现,此处用C++语言实现。