SearchWithFilter(AscendIndex多filter)
| API定义 | void SearchWithFilter(std::vector<AscendIndex *> indexes, idx_t n, const float *x, idx_t k, float *distances, idx_t *labels, void *filters[], bool merged); | 
|---|---|
| 功能描述 | 多“indexes”执行检索,根据输入的特征向量返回最相似的“k”条特征的ID。 提供基于CID过滤的功能,“filters”为大小为“n”的指针数组,“filters”数组中的每个指针指向indexes.size() * 6 个uint32_t的数组,每6个uint32_t数值为一个filter。每个filter的前4个数字(128bit)表示对应的CID,后2个数字表示对应的时间戳左闭合的范围,即[x, y)。 | 
| 输入 | std::vector<Index *> indexes:待执行检索的多个Index。 idx_t n:执行检索的query数。 const float *x:执行检索的query特征向量。 idx_t k:需要返回的最近似的结果的个数。 void *filters[]:过滤条件。 bool merged:是否要合并多个Index上执行检索的结果。 | 
| 输出 | float *distances:查询向量与距离最近的前“k”个向量间的距离值。 idx_t *labels:查询的距离最近的前“k”个向量的ID。 | 
| 返回值 | 无 | 
| 约束说明 | 
 
 
 | 
父主题: 多Index批量检索