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,异常退出返回对应错误码。
|