Struct faiss::RangeSearchPartialResult
-
struct RangeSearchPartialResult : public faiss::BufferList
the entries in the buffers are split per query
Public Functions
-
explicit RangeSearchPartialResult(RangeSearchResult *res_in)
eventually the result will be stored in res_in
-
RangeQueryResult &new_result(idx_t qno)
begin a new result
-
void finalize()
-
void set_lims()
called by range_search before do_allocation
-
void copy_result(bool incremental = false)
called by range_search after do_allocation
-
void append_buffer()
create a new buffer
-
void add(idx_t id, float dis)
add one result, possibly appending a new buffer if needed
-
void copy_range(size_t ofs, size_t n, idx_t *dest_ids, float *dest_dis)
copy elemnts ofs:ofs+n-1 seen as linear data in the buffers to tables dest_ids, dest_dis
Public Members
-
RangeSearchResult *res
-
std::vector<RangeQueryResult> queries
query ids + nb of results per query.
-
size_t buffer_size
-
std::vector<Buffer> buffers
-
size_t wp
write pointer in the last buffer.
Public Static Functions
-
static void merge(std::vector<RangeSearchPartialResult*> &partial_results, bool do_delete = true)
merge a set of PartialResult’s into one RangeSearchResult on output the partialresults are empty!
-
explicit RangeSearchPartialResult(RangeSearchResult *res_in)