1. 安装过程略,后续补充,主要讲解接口如何使用的
2. API接口使用
1.导入头文件
#include "faiss/IndexFlat.h"
#include "faiss/MetaIndexes.h"
2.创建一个检索文件用于保存特征向量,后面保存的数据会直接覆盖原有数据
std::string indexFile = "./aaaa.bin";
faiss::write_index(index, indexFile.c_str());
3.通过调用接口打开文件返回一个 IndexIDMap2 类型的指针
faiss::IndexIDMap2* index = faiss::write_index(indexFile.c_str());
4.创建管理指针
faiss::IndexFlatIP index_flat(2048);
faiss::IndexIDMap2 *index = new faiss::IndexIDMap2(&index_flat);
5.添加数据到内存中
long ids[1] = {5};
index->add_with_ids(1, feature1, ids);
6.根据对比方式返回检索的结果
float distances[5] = {0.0};
long featureids[5] = {1};
index->search(1, feature2, 4, distances, featureids);
7.删除 Index 对应的特征向量及查看内存中存在的下标ID
int id = 5;
long ids[1] = {id};
faiss::IDSelectorBatch selector(1, ids);
index->remove_ids(selector);
printf("index = %d \n", index->id_map[0]);