向量搜索概述
本文档介绍了向量数据库与向量搜索的核心概念。
seekdb 最高支持 16000 维的 Float 类型的稠密向量,支持稀疏向量,支持曼哈顿距离、欧式距离、内积、余弦距离等多种类型向量距离的计算,支持基于 HNSW/IVF 向量索引的创建,支持增量更新删除,同时增量更新删除操作不会影响召回率。
seekdb 向量搜索具备带有标量过滤的混合搜索能力。同时提供灵活的访问接口,不仅支持通过 MySQL 协议各种语言客户端使用 SQL 访问,也可以使用 Python SDK 访问。同时 seekdb 也完成了对 AI 应用开发框架 LlamaIndex、DB-GPT 及 AI 应用开发平台 Dify 的适配,更好的服务于 AI 应用开发。
关键概念
非结构化数据
非结构化数据是指没有明确定义的数据格式和组织结构的数据。非结构化数据通常包括文本、图像、音频、视频等形式的数据,以及社交媒体内容、电子邮件、日志文件等。由于非结构化数据的复杂性和多样性,处理这些数据需要采用特定的工具和技术,例如自然语言处理、图像识别、机器学习等。
向量
向量本质上是一个对象在高维空间的投影。数学意义上向量则是一个浮点数组,有以下两个特点:
-
数组中每个元素表示向量的某个维度,每个元素都是一个浮点数。
-
向量数组的大小(元素个数)表示整个向量空间的维度。
向量嵌入(Embedding)
向量嵌入(Embedding) 指的是通过深度学习神经网络提取非结构化数据里的内容和语义,把图片、视频等变成特征向量的过程。Embedding 技术将原始数据从高维度空间映射到低维度空间,将具有丰富特征的多模态数据转换为多维向量数据。
向量相似性搜索
在当今信息爆炸的时代,用户常需要从海量数据中迅速搜索所需信息。例如在线文献数据库、电商平台产品目录、以及不断增长的多媒体内容库,都需要高效的搜索系统来快速定位到用户感兴趣的内容。随着数据量不断激增,传统的基于关键字的搜索方法已经无法满足用户对于搜索精度和速度的需求,向量搜索技术应运而生。向量相似性搜索使用特征提取和向量化技术将文本、图片、音频等不同类型的非结构化数据转换为向量,使用相似性度量方法来比较它们之间的相似性,进而捕捉数据的深层次语义信息,从而提供更为准确和高效的搜索结果。
为什么选择 seekdb 向量搜索?
seekdb 向量搜索能力基于 seekdb 多模一体化能力上构建,在融合查询、高性能、高可用、低成本、数据安全等方面均有优异的表现。
混合搜索
seekdb 支持向量数据、空间数据、文档数据、标量数据等类型混合搜索,基于向量索引、空间索引、全文索引等多种索引的支持,提供极致性能的多模混合搜索能力。seekdb 真正实现用一套数据库解决应用多样存储搜索需求。
可扩展性
seekdb 向量搜索支持海量向量数据的存储和搜索,能够满足大规模向量数据应用的需求。
高性能
seekdb 向量搜索能力集成了索引算法库 VSAG,VSAG 算法库在 960 维的 GIST 数据集上表现出色,在 ANN-Benchmarks 测试中远超其他算法。
高可用
seekdb 向量搜索提供可靠的数据存储和访问能力,对于基于内存的 HNSW 索引,能够保证稳定的搜索性能。
事务性
seekdb 的事务能力保证了向量数据的一致性和完整性,提供了有效的并发控制和故障恢复机制。
低成本
seekdb 的存储编码压缩能力能够显著降低向量存储空间,节省应用的存储成本。
数据安全
seekdb 已经支持比较完整的企业级安全特性,包括身份鉴别和认证、访问控制、数据加密、监控告警、安全审计,可以有效保证向量搜索场景下的数据安全。
简单易用
seekdb 向量搜索提供灵活的访问接口,不仅支持通过 MySQL 协议各种语言客户端使用 SQL 访问,也可以使用 Python SDK 访问。同时 seekdb 也完成了对 AI 应用开发框架 LangChain 和 Llamaindex 的适配,更好的服务于 AI 应用开发。