Search

API定义

APP_ERROR Search(uint32_t count, const void *features, const AttrFilter *attrFilter, bool shareAttrFilter, uint32_t topk, int64_t *labels, float *distances, uint32_t *validNums, bool enableTimeFilter = true);

功能描述

计算输入特征和经过AttrFilter过滤后的底库向量的距离并将距离进行TopK排序,返回对应的距离和下标。

输入

uint32_t count:待比较的特征数量。

void *features:待比较的特征,汉明距离为uint8_t类型的数据,Int8Flat为int8_t类型,Fp16Flat为float类型。

AttrFilter *attrFilter:属性过滤信息,具体请参见AttrFilter

bool shareAttrFilter:同一个query是否共享一个mask。

uint32_t topk:计算余弦距离后需要保存的TopK大小。

bool enableTimeFilter:时间戳属性过滤开关,默认为“true”,当enableTimeFilter = false时,不进行对时间戳属性的过滤。

输出

uint32_t *validNums:每个query向量经过比对后得到的有效结果个数。

int64_t *labels:TopK特征的Label。

float *distances:TopK特征的距离。

返回值

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

约束说明

  • “count”取值在[1, 10240]区间。
  • “topk”取值在[1, 100000]区间。
  • “features”长度为count * 向量维度dim。
  • “attrFilter”指向被正确构造的AttriFilter的指针。
  • “validNums”长度为“count”
  • “labels”长度为count * topk。