search
API定义  | 
void search(Index::idx_t n, const float *x, Index::idx_t k, float *distances, Index::idx_t *labels) const override;  | 
|---|---|
功能描述  | 
实现AscendIndex特征向量查询接口,根据输入的特征向量返回最相似的“k”条特征的ID。  | 
输入  | 
idx_t n:查询的特征向量的条数。 const float *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)。  | 
父主题: AscendIndex