鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

SearchBatchedParallel

接口定义

1)Status ScannInterface::SearchBatchedParallel(const DenseDataset<float>& queries, MutableSpan<NNResultsVector> res, int final_nn, int pre_reorder_nn, int leaves, int batch_size) const;

2)Status ScannInterface::SearchBatchedParallel(const DenseDataset<float>& queries, const std::vector<int64_t>& indices, MutableSpan<NNResultsVector> res, int final_nn, int pre_reorder_nn, int leaves, int batch_size) const;

接口用途

  1. 并行批量query搜索接口,多线程并发执行(与开源算法方法保持一致)。
  2. 并行批量query搜索重载函数,开启component filtering后需要引入过滤元素的索引列表(相比开源算法新增方法)。

参数说明

参数名称

数据类型

描述

取值范围

queries

const DatapointPtr<float>&

批次内的Queries。

限制非空。

res

MutableSpan<NNResultsVector>

用于存储最终需要的结果(labals, distances),每一项长度为final_nn,其中“final_nn”为最终返回结果数量。

限制非空,长度为查询向量的数量。

final_nn

int

最终返回结果数量。

大于等于1,与构建时保持一致。

pre_reorder_nn

int

重排前保存结果数量。

大于等于final_nn,其中“final_nn”为最终返回结果数量。

leaves

int

搜索子空间数量。

[1, n_leaves],其中“n_leaves”为IVF倒排索引分区总子空间个数。

indices

const std::vector<int64_t>&

过滤元素的索引。

限制非空。

batch_size

int

批量搜索大小。

[1, MAXINT],默认为256。

返回值

数据类型

说明

Status

表示方法执行状态,通过status.ok()判断是否成功。