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;
接口用途
- 并行批量query搜索接口,多线程并发执行(与开源算法方法保持一致)。
- 并行批量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()判断是否成功。 |