根据原理,把Page进分进行了分类,分为三种类的Page: 首先是Meta Page,负责存储两种Page的入口、查询的入口以及一些配置项,在MetaPage这种存储。 第二类是中心点Page,中心点Page是用于存储中心点数据的,要对全局向量进行聚类,例如这张图得到两个中心点,多的话可能会有更多的中心点,这些中心点存储在中心点Page中,连续存储,当一个page存不下的时候,会通过PageTailer这个结构来存储下一个页面的起始地址,将这些Page连成一个Pagelist,这种方式来存储一个中心点Page链表。 第三类是DataPage,用于存储原始向量数据。 如图所示,分为两个类簇,这两个类簇数据是存储在两个数据链条中,存储结构其实和中心点的存储结构类似,在中心点Tuple中存储了它对应的数据链条的起始地址,查询查询的时候,首先把query向量和中心点向量依次进行比较。 查到最近的中心点,通过中心点Tuple结构,定位到datalist的入口地址,从入口地址依次遍历它的dataPage进行比对,查到最近的向量,这就是IVFFlat算法的实现原理。
答复内容摘自《PostgreSQL实战教程》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1168
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。