SearchWithMask

API定义

APP_ERROR SearchWithMask(const AscendIndexSearchParams& params, const std::vector<uint8_t>& mask) const;

功能描述

特征向量查询接口,根据输入的特征向量返回最相似的topK条特征的ID。mask为0、1比特串,每个比特代表底库中对应顺序的特征是否参与距离计算,0表示不参与,1表示参与。

输入

const AscendIndexSearchParams& params:检索参数,具体请参见12.5.13.6-AscendIndexSearchParams

size_t n:查询的特征向量的条数。

std::vector<float>& queryData:特征向量数据。

int topK:需要返回的最近似的结果个数。

const std::vector<uint8_t>& mask:特征底库掩码。

输出

std::vector<float>& dists:查询向量与距离最近的前“topK”个向量间的距离值。

std::vector<int64_t>& labels:查询的距离最近的前“topK”个向量的ID。

返回值

APP_ERROR:调用返回状态,具体请参见接口调用返回值参考

约束说明

  • n∈(0,10000],需保证n * dim * sizeof(float)小于卡的剩余内存,否则可能内存不足导致检索失败。
  • queryData:长度应该大于等于n * dim。
  • topK∈(0,4096]。
  • dists、labels:长度应该大于等于n * topK。
  • mask:长度应该大于等于n * ceil(ntotal/8),,其中ntotal为底库特征数量。