API定义 |
void search(idx_t n, const uint16_t *x, idx_t k, float *distances, idx_t *labels) const; |
---|---|
功能描述 |
实现AscendIndex特征向量查询接口,根据输入的特征向量返回最相似的“k”条特征的ID。 |
输入 |
idx_t n:查询的特征向量的条数。 const uint16_t *x:特征向量数据。 idx_t k:需要返回的最近似的结果的个数。 |
输出 |
float *distances:查询向量与距离最近的前“k”个向量间的距离值。当有效的检索结果不足“k”个时,剩余无效距离用65504或-65504填充(因metric而异)。 idx_t *labels:查询的距离最近的前“k”个向量的ID。当有效的检索结果不足“k”个时,剩余无效label用-1填充。 |
返回值 |
无 |
约束说明 |
查询的特征向量数据“x”的长度应该为dims * n,“distances”以及“labels”的长度应该为k * n,否则可能会出现越界读写的情况,引起程序的崩溃。其中,“n”的取值范围:0 < n < 1e9;“k”通常不允许超过4096。 |
注意事项 |
使用小库暴搜算法的场景中,如果在底库和batch数较大时出现性能下降现象,需要增大AscendIndexConfig中的“resources”参数值(暴搜算法默认值为128MB)。 |