一句话定义
向量检索(Vector Search) 指把数据(图片、文本、音频)通过模型转成高维向量,再在向量集合中按距离找出与查询最相似的若干项。
为什么需要它
传统数据库按精确字段查询(等于、大于、包含)。但「这张图里是什么商品」这类问题没有精确字段可比——需要的是相似度。向量检索把「相似」变成了可计算的距离。
核心流程
建库:图片 → 特征提取模型 → 向量 → 写入向量库
查询:查询图 → 同一模型 → 向量 → 最近邻搜索 → Top-K 结果
关键点:建库和查询必须用同一个特征提取模型。换模型等于换了一套坐标系,旧向量全部失效。
常见索引与算法
- 暴力检索(Flat):逐个比对,最准但最慢,适合小规模
- IVF(倒排文件):先聚类再在最近的簇里找,速度与精度的折中
- HNSW:图索引,查询快,内存占用较高
- 乘积量化(PQ):压缩向量省内存,精度有损失
端侧场景的约束
- 库规模小:单店商品库通常几百到几千条,不需要分布式
- 内存受限:嵌入式设备要控制索引体积
- 离线可用:不能依赖云端服务
- 一致性:底库更新要能即时生效
因此端侧常选轻量本地向量库(扁平或 IVF),而非云端大规模向量服务。
与以图搜图的关系
以图搜图是向量检索最直观的应用:用户给一张图,系统在库中找出最相似的商品/人脸/车辆。它是无条码商品识别、安防人物检索、跨镜追踪的共同底座。
火眼识别采用「检测 + 特征提取 + 本地向量检索」链路,见 火眼识别官网。