结构体 faiss::InvertedListsIOHook

struct InvertedListsIOHook

处理其他类型的倒排列表对象的回调。

在调用 read_index 或 read_InvertedLists 之前,应使用 add_callback 注册回调函数。 OnDiskInvertedLists 的回调函数默认已注册。 invlist 类型通过以下方式标识:

  • 读取时的 key (一个 fourcc)

  • 写入时的类名 (由 typeid.name 给出)

faiss::BlockInvertedListsIOHook, faiss::OnDiskInvertedListsIOHook 继承

公共函数

InvertedListsIOHook(const std::string &key, const std::string &classname)
virtual void write(const InvertedLists *ils, IOWriter *f) const = 0

将索引写入 IOWriter (包括 fourcc)

virtual InvertedLists *read(IOReader *f, int io_flags) const = 0

当 fourcc 与此类的 fourcc 匹配时调用

virtual InvertedLists *read_ArrayInvertedLists(IOReader *f, int io_flags, size_t nlist, size_t code_size, const std::vector<size_t> &sizes) const

ArrayInvertedLists 读入此倒排列表类型。 为了使此操作有效,必须启用回调,并且 io_flag 必须设置为 IO_FLAG_SKIP_IVF_DATA | (fourcc 的 16 个高位)

(默认实现失败)

inline virtual ~InvertedListsIOHook()

公共成员

const std::string key

fourcc 的字符串版本

const std::string classname

typeid.name

公共静态函数

static void add_callback(InvertedListsIOHook*)
static void print_callbacks()
static InvertedListsIOHook *lookup(int h)
static InvertedListsIOHook *lookup_classname(const std::string &classname)