结构体 faiss::RangeSearchPartialResult

struct RangeSearchPartialResult : public faiss::BufferList

缓冲区中的条目按查询拆分

公共函数

explicit RangeSearchPartialResult(RangeSearchResult *res_in)

最终结果将存储在 res_in 中

RangeQueryResult &new_result(idx_t qno)

开始一个新的结果

void finalize()
void set_lims()

在 do_allocation 之前由 range_search 调用

void copy_result(bool incremental = false)

在 do_allocation 之后由 range_search 调用

void append_buffer()

创建一个新的缓冲区

void add(idx_t id, float dis)

添加一个结果,如果需要,可以附加一个新的缓冲区

void copy_range(size_t ofs, size_t n, idx_t *dest_ids, float *dest_dis)

将缓冲区中视为线性数据的元素 ofs:ofs+n-1 复制到表 dest_ids, dest_dis

公共成员

RangeSearchResult *res
std::vector<RangeQueryResult> queries

查询 ID + 每个查询的结果数。

size_t buffer_size
std::vector<Buffer> buffers
size_t wp

最后一个缓冲区中的写入指针。

公共静态函数

static void merge(std::vector<RangeSearchPartialResult*> &partial_results, bool do_delete = true)

将一组 PartialResult 合并为一个 RangeSearchResult。输出时,partialresults 为空!