ComputePQTable接口 API定义 int ComputePQTable(VectorArrayData *sample, DiskPQParams *params); 功能描述 使用sample中存储的采样底库数据计算PQ码本,并将码本相关的数据存储在参数params中的对应参数里。 输入 VectorArrayData *sample:指向填充好采样底库数据的VectorArrayData实例的指针。不能为空指针。 DiskPQParams *params:指向仅包含PQ参数,未填充训练好的PQ数据的DiskPQParams实例的指针。不能为空指针。 输出 无 返回值 int:返回值为0时表示流程正常;返回值为-1时表示流程异常,且会将异常日志信息打印到cerr中。 约束说明 sample数据填充要求如下:items指向的数据大小为(8 + dim) * length * sizeof(float)字节,即每条向量前有8字节的metadata。非OpenGauss用户使用时,需在每条向量数据添加8字节的任意数据。 params成员变量填充要求如下:dim除满足上述的范围限制要求之外,还需确保与sample中对应的dim字段保持一致。pqTable必须为nullptr,在动态库内部将使用new []关键字进行内存申请,需要使用者在外部对申请的内存进行释放(使用delete [])。内部申请的内存大小确保等于dim * 256 (256为每个chunk内的聚类数)* sizeof(float)字节。offsets必须为nullptr,在动态库内部将使用new []关键字进行内存申请,需要使用者在外部对申请的内存进行释放(使用delete [])。内部申请的内存大小确保等于(pqChunks + 1) * sizeof(uint32_t)字节。tablesTransposed必须为nullptr,在动态库内部将使用new []关键字进行内存申请,需要使用者在外部对申请的内存进行释放(使用delete [])。内部申请的内存大小确保等于dim * 256 * sizeof(float)字节。centroids必须为nullptr,在动态库内部将使用new []关键字进行内存申请,需要使用者在外部对申请的内存进行释放(使用delete [])。内部申请的内存大小确保等于dim * sizeof(float)字节。 父主题: DiskPQ