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

krl_reorder_2_vector

接口定义

int krl_reorder_2_vector(const KRLDistanceHandle* kdh, int64_t base_k, float* base_dis, int64_t* base_idx, const float* query_vector, int64_t k, float* dis, int64_t* idx, size_t query_vector_size);

接口用途

计算1个查询向量与多个不连续底库向量间的高精度距离并排序。

参数说明

参数名称

数据类型

描述

取值范围

kdh

const KRLDistanceHandle*

KRLDistanceHandle指针。

限制非空。需使用krl_create_reorder_handle初始化。

base_k

int64_t

使用低精度检索算法得到的候选点数量。

[k,codes_num],其中“k”为最近邻点数量,“codes_num”为每个查询向量计算的底库向量数量。

base_dis

float*

使用低精度检索算法得到的低精度距离。

限制长度为base_k,其中“base_k”为使用低精度检索算法得到的候选点数量。

base_idx

int64_t*

使用低精度检索算法得到的候选点ID。

限制长度为base_k,其中“base_k”为使用低精度检索算法得到的候选点数量。[-1,codes_num],其中“codes_num”为每个查询向量计算的底库向量数量。ID需单调递增。若存在无需计算的占位符-1,则需要集中于向量末尾。

query_vector

const float*

查询向量数据。

限制长度为query_vector_size,其中“query_vector_size”为查询向量数组的长度。

k

int64_t

计算所得的最近邻点数量。

[1,base_k],其中“base_k”为使用低精度检索算法得到的候选点数量。

dis

float*

存储计算所得的最近邻点与查询向量间的距离。

限制长度为k,其中“k”为最近邻点数量。需预先分配内存。

idx

int64_t*

存储计算所得的最近邻点ID。

限制长度为k,其中“k”为最近邻点数量。需预先分配内存。

query_vector_size

size_t

查询向量数组的长度。

dim,其中“dim”为向量维度。

返回值

数据类型

说明

int

正常运行时返回0,异常退出返回对应错误码。

  • -1:非法指针。
  • -2:内存分配失败。
  • -3:非法入参。
  • -4:双重释放。
  • -5:不安全内存操作。
  • -6:IO失败。