原理描述
Milvus在每次进行查询前,都会对使用的索引算法进行验证,这一切都在INDEX_NODE中完成。只有当验证通过,QUERY_NODE才会调用对应索引算法中的接口,进行查询的一系列操作。以上两个节点的操作都是用Go语言实现。Milvus的整体查询结构如下图1所示。
索引算法的关键组件叫做Knowhere,主要用C++实现,会链接核心的索引算法(如Faiss或HNSW等)和CGO接口,进行调用。
综上所述,引入KBest算法,需要在两个方面进行处理。
- 在INDEX_NODE中添加对于KBest算法的验证,此处用Go语言实现。
- 在Knowhere组件中,引入对于KBest的对接实现,此处用C++语言实现。
父主题: 特性描述