Faiss库c接口使用

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);  
// 创建一个 IndexIDMap2 类型的指针
faiss::IndexIDMap2 *index = new faiss::IndexIDMap2(&index_flat);  
5.添加数据到内存中
long ids[1] = {5};
// 需要对比的数据个数 | 数据 | 在faiss中的下标ID
index->add_with_ids(1, feature1, ids);  
6.根据对比方式返回检索的结果
float distances[5] = {0.0}; // 一次容纳N个结果
long featureids[5] = {1};   // 返回对应的index
// 需要对比的数据个数 | 数据 | 排名前N的结果 | 结果 | 下标ID
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]);
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值