结构体 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 为空!
-
explicit RangeSearchPartialResult(RangeSearchResult *res_in)