结构体 faiss::IndexIDMap2Template

template<typename IndexT>
struct IndexIDMap2Template : public faiss::IndexIDMapTemplate<IndexT>

与 IndexIDMap 相同,但也通过双向索引提供高效的重建实现

公共类型

using component_t = typename IndexT::component_t
using distance_t = typename IndexT::distance_t

公共函数

explicit IndexIDMap2Template(IndexT *index)
void construct_rev_map()

从头开始创建 rev_map

void add_with_ids(idx_t n, const component_t *x, const idx_t *xids) override
size_t remove_ids(const IDSelector &sel) override
void reconstruct(idx_t key, component_t *recons) const override
void check_consistency() const

检查 rev_map 和 id_map 是否同步

void merge_from(IndexT &otherIndex, idx_t add_id = 0) override
inline ~IndexIDMap2Template() override
inline IndexIDMap2Template()
void add(idx_t n, const component_t *x) override

这将会失败。使用 add_with_ids

const override
override
override
const override
const override
const override
override

公共成员

std::unordered_map<idx_t, idx_t> rev_map
IndexT *index = nullptr
bool own_fields = false

! 子索引

std::vector<idx_t> id_map

! 指针是否在析构函数中删除