结构体 faiss::BinaryInvertedListScanner
-
struct BinaryInvertedListScanner
公共函数
-
virtual void set_query(const uint8_t *query_vector) = 0
从此之后我们处理这个查询。
-
virtual void set_list(idx_t list_no, uint8_t coarse_dis) = 0
以下代码来自这个倒排列表
-
virtual uint32_t distance_to_code(const uint8_t *code) const = 0
计算单个查询到代码的距离
-
virtual size_t scan_codes(size_t n, const uint8_t *codes, const idx_t *ids, int32_t *distances, idx_t *labels, size_t k) const = 0
计算到代码的距离。(distances, labels) 应该组织成最小或最大堆
- 参数:
n – 要扫描的代码数量
codes – 要扫描的代码 (n * code_size)
ids – 相应的 IDs(如果 store_pairs 则忽略)
distances – 堆距离 (大小 k)
labels – 堆标签 (大小 k)
k – 堆大小
-
virtual void scan_codes_range(size_t n, const uint8_t *codes, const idx_t *ids, int radius, RangeQueryResult &result) const = 0
-
inline virtual ~BinaryInvertedListScanner()
-
virtual void set_query(const uint8_t *query_vector) = 0