下载
中文
注册

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:待比较的特征数量。

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

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

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

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

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

输出

int64_t *labels:TopK特征的Label。

float *distances:TopK特征的距离。

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

返回值

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

约束说明

  • “count”取值在[1, 10240]区间。
  • “features”长度为count * 向量维度dim,否则可能出现越界读写的错误并引起程序崩溃。
  • “attrFilter”shareAttrFilter为true时,长度为1;当shareAttrFilter为false时,长度为count,否则可能出现越界读写的错误并引起程序崩溃。
  • “topk”取值在[1, 100000]区间。
  • “labels”长度为count * topk,否则可能出现越界读写的错误并引起程序崩溃。
  • “distances”长度为count * topk,否则可能出现越界读写的错误并引起程序崩溃。
  • “validNums”长度为count,否则可能出现越界读写的错误并引起程序崩溃。