向量数据库中索引的目的 向量数据库中的索引用于组织高维数据(如机器学习模型生成的嵌入),从而实现高效的相似性搜索。如果没有索引,搜索与查询最接近的向量将需要将查询与数据库中的每个向量进行比较——这个过程称为“暴力”搜索。随着数据集的增长,这变得不切实际,因为时间复杂度与数据集大小呈线性关系。索引通过构建数据结构来减少所需的比较次数,从而使查询更快地返回结果。例如,一个存储图像嵌入用于可视化搜索应用的数据库会使用索引来避免对每个用户查询扫描数百万个向量。
对搜索性能的影响 索引通过缩小搜索空间显著提高了搜索速度。像分层可导航小世界(HNSW)、倒排文件(IVF)或乘积量化(PQ)等技术创建了将相似向量分组或近似距离以优先考虑可能匹配的数据结构。例如,HNSW 构建一个图,其中每个节点代表一个向量,边连接到附近的邻居。在搜索过程中,算法遍历该图,跳过不相关的区域。这将搜索时间从 O(n)(暴力搜索)减少到 O(log n) 或更好。然而,索引涉及权衡:预计算结构会增加数据插入时的开销,并且某些方法会为了速度牺牲精确结果。例如,IVF 将数据分区到聚类中并仅搜索一个子集,这会加快查询速度,但如果查询落在聚类边界附近,可能会错过最佳匹配。
准确性考量 索引的选择直接影响准确性。精确索引(如暴力搜索)保证结果的正确性,但对于大型数据集来说速度太慢。近似最近邻(ANN)索引通过接受微小的误差来优先考虑速度。例如,PQ 将向量压缩成更小的代码,减少内存使用并加快比较速度,但会引入量化误差。开发者必须根据用例平衡这些因素:推荐系统可能为了实时响应而容忍略微不准确的结果,而医学影像工具可能优先考虑精度而使用更慢、更精确的索引。调整参数(例如,IVF 中的聚类数量或 HNSW 中的图层数)可以进一步优化。实际上,对代表性数据进行基准测试对于验证索引是否满足速度和准确性要求至关重要。