下载
中文
注册

search_with_filter

API定义

void search_with_filter(idx_t n, const float *x, idx_t k, float *distances, idx_t *labels, const void *filters) const;

功能描述

AscendIndexSQ的特征向量查询接口,根据输入的特征向量返回最相似的“k”条特征的ID。提供基于CID过滤的功能,“filters”为长度为n * 6的uint32_t数组,每6个uint32_t数值为一个filter。每个filter的前4个数字(128bit)表示对应的CID,后2个数字表示对应的时间戳左闭合的范围,即[x, y)。

输入

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

const float *x:特征向量数据。

idx_t k:需要返回的最近似的结果的个数。

const void *filters:过滤条件。

输出

float *distances:查询向量与距离最近的前“k”个向量间的距离值。

idx_t *labels:查询的距离最近的前“k”个向量的ID。

返回值

约束说明

  • 此处“n”的取值范围:0 < n < 1e9。
  • 此处“k”通常不允许超过4096。
  • 此处指针“x”需要为非空指针,且长度应该为dims * n,否则可能出现越界读写的错误并引起程序崩溃。
  • 此处指针“distances”/“labels”需要为非空指针,且长度应该为k * n,否则可能出现越界读写的错误并引起程序崩溃。
  • 此处指针“filters”需要为非空指针,且长度为n * 6的uint32_t的数组,否则可能出现越界读的错误并引起程序崩溃。