跳到主要内容
版本:V1.0.0

向量搜索概述

本文档介绍了向量数据库与向量搜索的核心概念。

seekdb 最高支持 16000 维的 Float 类型的稠密向量,支持稀疏向量,支持曼哈顿距离、欧式距离、内积、余弦距离等多种类型向量距离的计算,支持基于 HNSW/IVF 向量索引的创建,支持增量更新删除,同时增量更新删除操作不会影响召回率。

核心功能

seekdb 提供了存储、索引、搜索 Embedding 向量数据的能力。具体包括:

核心功能描述
向量数据类型
  • 支持最大 16,000 维的 float 稠密向量数据存储。
  • 支持稀疏向量数据存储。
向量索引
  • 支持精确搜索和近似最近邻搜索。
  • 支持 L2 距离、内积和余弦相似度计算。
  • 支持 HNSW/HNSW_SQ/HNSW_BQ 索引,索引列最大维度为 4096。HNSW_BQ 索引从 V4.4.0 版本开始支持。
  • 支持 IVF/IVF_PQ 索引,索引列最大维度为 4096。
向量搜索 SQL 运算符支持向量加、减、乘、比较、聚合等基础运算操作符。

使用限制和说明如下:

  • seekdb 默认采用 NULL first 比较模式,所以对 NULL 值进行排序时会将其放至最前,建议查询的时候加上 NOT NULL 条件。

关键概念

非结构化数据

非结构化数据是指没有明确定义的数据格式和组织结构的数据。非结构化数据通常包括文本、图像、音频、视频等形式的数据,以及社交媒体内容、电子邮件、日志文件等。由于非结构化数据的复杂性和多样性,处理这些数据需要采用特定的工具和技术,例如自然语言处理、图像识别、机器学习等。

向量

向量本质上是一个对象在高维空间的投影。数学意义上向量则是一个浮点数组,有以下两个特点:

  • 数组中每个元素表示向量的某个维度,每个元素都是一个浮点数。

  • 向量数组的大小(元素个数)表示整个向量空间的维度。

向量嵌入(Embedding)

向量嵌入(Embedding) 指的是通过深度学习神经网络提取非结构化数据里的内容和语义,把图片、视频等变成特征向量的过程。Embedding 技术将原始数据从高维度空间映射到低维度空间,将具有丰富特征的多模态数据转换为多维向量数据。

向量相似性搜索

在当今信息爆炸的时代,用户常需要从海量数据中迅速搜索所需信息。例如在线文献数据库、电商平台产品目录、以及不断增长的多媒体内容库,都需要高效的搜索系统来快速定位到用户感兴趣的内容。随着数据量不断激增,传统的基于关键字的搜索方法已经无法满足用户对于搜索精度和速度的需求,向量搜索技术应运而生。向量相似性搜索使用特征提取和向量化技术将文本、图片、音频等不同类型的非结构化数据转换为向量,使用相似性度量方法来比较它们之间的相似性,进而捕捉数据的深层次语义信息,从而提供更为准确和高效的搜索结果。