SearchWithExtraMask
API定义 |
APP_ERROR SearchWithExtraMask(uint32_t count, const void *features, const AttrFilter *attrFilter, bool shareAttrFilter, uint32_t topk, const uint8_t *extraMask, uint64_t extraMaskLenEachQuery, bool extraMaskIsAtDevice, int64_t *labels, float *distances, uint32_t *validNums, bool enableTimeFilter = true); |
---|---|
功能描述 |
计算输入特征和经过AttrFilter和外部Mask过滤后的底库向量的距离并将距离进行TopK排序,返回对应的距离和下标。 |
输入 |
uint32_t count:待比较的特征数量。 void *features:待比较的特征,汉明距离为uint8_t类型的数据,Int8Flat为int8_t类型,Fp16Flat为float类型。 const AttrFilter *attrFilter:属性过滤信息,具体请参见AttrFilter。 bool shareAttrFilter:同一个query是否共享一个Mask。 uint32_t topk:计算余弦距离后需要保存的TopK大小。 const uint8_t *extraMask:外部输入的额外的过滤Mask,以bit为单位,0和1分别代表过滤或者选中该条特征。 uint64_t extraMaskLenEachQuery:外部输入Mask的长度,单位为字节。 bool extraMaskIsAtDevice:用户外部输入的Mask是否已存在Device侧。 bool enableTimeFilter:时间戳属性过滤开关,默认为“true”,当enableTimeFilter = false时,不进行对时间戳属性的过滤。 |
输出 |
int64_t *labels:TopK特征的Label。 float *distances:TopK特征的距离。 uint32_t *validNums:每个query向量经过比对后得到的有效结果个数。 |
返回值 |
APP_ERROR:调用返回状态,具体请参见接口调用返回值参考。 |
约束说明 |
|