在现实世界中,团队可能需要处理并非整齐地排列成行和列的数据。当处理照片、视频和自然语言等复杂的非结构化数据时,这种情况尤为常见。
这时,矢量数据库就派上用场了。
哪个矢量数据库最适合您的项目?目前市场上领先的矢量数据库有哪些?深入了解我们对市场上 17 个最流行的矢量数据库的概述,了解您的选择并为您的项目挑选最佳工具。
要点总结
- 向量数据库专门用于高维搜索:与关系型或 NoSQL 系统不同,向量数据库针对存储和查询 LLM 和神经网络应用中使用的向量嵌入进行了优化。
- 库和数据库的使用场景各不相同:向量库最适合静态数据场景,例如学术基准测试,而完整的向量数据库支持动态应用,例如语义搜索和个性化推荐。
- 元数据和混合搜索是关键的差异化因素:许多现代向量数据库,包括 Pinecone、MongoDB 和 Qdrant,都支持元数据过滤和混合搜索,从而增强检索任务的相关性和控制力。
- 开源软件的优势支持定制化:大多数特色解决方案(例如 Milvus、Weaviate、Deep Lake、Faiss)都是开源的,允许团队根据特定的基础设施或性能需求定制数据库。
- 数据沿袭和版本控制是新兴的优先事项:像 Deep Lake 这样的工具集成了版本控制和可重现性功能,从而在 LLM 工作流程中实现更好的跟踪、回滚和实验管理。
什么是向量数据库?
向量数据库几年前首次出现,旨在为基于神经网络的新一代搜索引擎提供支持。如今,它们扮演着新的角色:帮助企业部署基于大型语言模型(例如 GPT4)的应用程序。
向量数据库与标准关系型数据库(例如 PostgreSQL)不同,后者旨在以行和列的形式存储表格数据。它们也不同于像 MongoDB 这样的新型 NoSQL 数据库,后者以 JSON 格式存储数据。这是因为向量数据库的设计初衷就是为了存储和检索一种类型的数据:向量嵌入。
向量嵌入是对训练数据进行提炼后的表示,是机器学习过程训练阶段的输出结果。它们充当推理过程中处理新数据的过滤器。
目前有哪些向量数据库解决方案可以帮助您存储和检索高维向量?在介绍17个最有前景的向量数据库和库之前,让我们先来明确一下这两种技术之间的区别。
向量库与向量数据库
专门的矢量数据库是为高效管理密集矢量而开发的存储系统,而矢量库则集成到现有的数据库管理系统(DBMS)或搜索引擎中,以提供相似性搜索。
矢量库是静态数据应用(例如学术信息检索基准测试)的理想选择。矢量数据库则适用于需要频繁数据更新的应用,例如电子商务推荐、图像搜索和语义搜索。
2025 年你应该考虑的 17 个最佳矢量数据库
1. Pinecone

Pinecone:https://www.pinecone.io/
开源?不。
GitHub 星标数:–
它解决了什么问题?
Pinecone 是一个托管式云原生矢量数据库,拥有简洁易用的 API,无需任何基础设施。用户可以启动、运行和扩展其 AI 解决方案,而无需进行任何基础设施维护、服务监控或算法故障排除。
该解决方案能够快速处理数据,并允许用户使用元数据过滤器和稀疏-密集索引支持来实现高质量的相关性,从而保证在各种搜索需求下都能获得快速准确的结果。
主要特点
- 检测重复项。
- 排名追踪。
- 数据搜索。
- 分类。
- 去重。
2. MongoDB

MongoDB: https: //www.mongodb.com/
GitHub 星标数:25.2k
它解决了什么问题?
MongoDB Atlas 是最受欢迎的托管式开发者数据平台,能够处理各种事务和搜索工作负载。Atlas Vector Search 使用专门的矢量索引,该索引可与核心数据库自动同步,并可配置为在独立的基础设施上运行,从而兼具集成数据库的优势和独立扩展性,而这正是用户选择矢量数据库的常见原因。
主要特点
- 集成数据库+矢量搜索功能
- 数据库和搜索索引的独立配置
- 每个文档可存储 16 MB 的数据
- 高可用性、强大的交易保障、多级数据持久性、归档和备份
- 交易数据加密领域的行业领导者
- 混合搜索
3. Milvus

Milvus:https://milvus.io/
开源?是的
GitHub 星标数:21.1k
它解决了什么问题?
Milvus是一个开源向量数据库,旨在促进向量嵌入、高效相似性搜索和人工智能应用。它于2019年10月以开源Apache License 2.0发布,目前是LF人工智能与数据基金会的一个研究生项目。
该工具简化了非结构化数据搜索,并提供与部署环境无关的统一用户体验。为了提高弹性和适应性,重构后的 Milvus 2.0 版本中的所有组件均为无状态组件。
Milvus 的应用场景包括图像搜索、聊天机器人和化学结构搜索。
主要特点
- 在几毫秒内搜索数万亿个向量数据集。
- 非结构化数据管理很简单。
- 始终可用的可靠矢量数据库。
- 具有高度可扩展性和适应性。
- 搜索混合模式。
- 统一的Lambda结构。
- 获得社区支持,并获得业界认可。
4. Chroma

Chroma:https://www.trychroma.com/
开源?是的
GitHub 星标数:7千
它解决了什么问题?
Chroma DB 是一个开源的、原生 AI 嵌入向量数据库,旨在简化由自然语言处理驱动的 LLM 应用程序的创建过程,使知识、事实和技能可以插入到 LLM 规模的机器学习模型中,同时避免产生幻觉。
许多工程师都希望拥有“数据版的 ChatGPT”,而 Chroma 通过基于嵌入的文档检索实现了这一愿望。它还提供“开箱即用”的解决方案,包含团队存储、嵌入和查询数据所需的一切,包括强大的过滤功能,以及即将推出的更多功能,例如智能分组和查询相关性。
主要特点
- 功能丰富:查询、过滤、密度估计以及许多其他功能。
- LangChain(Python 和 JavScript)、LlamaIndex 等更多工具即将加入。
- 在 Python notebook 中运行的同一个 API 可以扩展到集群,用于开发、测试和生产。
5. Weaviate
Weaviate:https://github.com/weaviate/weaviate
开源?是的
GitHub 星标数:6.7k
它解决了什么问题?
Weaviate 是一个云原生、开源的矢量数据库,具有弹性、可扩展性和快速性。该工具利用尖端的机器学习模型和算法,可以将文本、照片和其他数据转换为可搜索的矢量数据库。
它能在几毫秒内对数百万个项目执行 10 近邻搜索。工程师可以利用它在导入过程中对数据进行向量化,或者提交自己的向量,最终创建用于问答提取、摘要和分类的系统。
Weaviate 模块支持使用 OpenAI、Cohere 或 HuggingFace 等知名服务和模型中心,以及本地和定制模型。Weaviate 的设计充分考虑了可扩展性、可复制性和安全性。
主要特点
- 内置模块,支持人工智能搜索、问答、将LLM与您的数据相结合以及自动分类。
- 具备完整的CRUD功能。
- 云原生、分布式,可随工作负载增长,并且在 Kubernetes 上运行良好。
- 使用此数据库将 ML 模型无缝传输到 MLOps。
6. Deep Lake

Deep Lake:https://github.com/activeloopai/deeplake
开源?是的
GitHub 星标数:6.4k
它解决了什么问题?
Deep Lake 是一个人工智能数据库,它采用专有的存储格式,专为利用自然语言处理的深度学习和基于语言学习模型 (LLM) 的应用而设计。它通过向量存储和一系列功能,帮助工程师更快地部署企业级 LLM 产品。
Deep Lake 可处理任意大小的数据,无需服务器,并允许您将所有数据存储在单个位置。
它还提供工具集成,帮助您简化深度学习操作。例如,通过 Deep Lake 和 Weights & Biases,您可以跟踪实验并实现模型的完全可复现性。该集成会自动将数据集相关信息(URL、提交哈希值、视图 ID)提供给您的 W&B 运行。
主要特点
- 存储所有数据类型(嵌入内容、音频、文本、视频、图像、pdf、注释等)。
- 查询和向量搜索,
- 大规模模型训练过程中的数据流传输。
- 工作负载的数据版本控制和血缘关系。
- 与 LangChain、LlamaIndex、Weights & Biases 等众多工具集成。
7. Qdrant

Qdrant:https://github.com/qdrant/qdrant
开源?是的
GitHub 星标数:11.5k
它解决了什么问题?
Qdrant 是一个开源的向量相似性搜索引擎和数据库。它提供了一个可用于生产环境的服务,并具有易于使用的 API,用于存储、搜索和管理点向量以及带有额外有效载荷的高维向量。
该工具旨在提供全面的过滤支持。Qdrant 的多功能性使其成为神经网络或基于语义的匹配、分面搜索和其他应用的理想选择。
主要特点
- JSON 有效负载可以与向量连接,从而实现基于有效负载的存储和过滤。
- 支持多种数据类型和查询条件,例如文本匹配、数值范围、地理位置等。
- 查询规划器利用缓存的有效负载信息来提高查询执行效率。
- 断电期间进行预写操作,更新日志会记录所有操作,从而可以轻松重建最新的数据库状态。
- Qdrant 的运行独立于外部数据库或编排控制器,从而简化了配置。
8. Elasticsearch

Elasticsearch:https://www.elastic.co/elasticsearch/
开源?是的
GitHub 星标数:64.4k
它解决了什么问题?
Elasticsearch 是一款开源、分布式且基于 RESTful 的分析引擎,能够处理文本、数值、地理、结构化和非结构化数据。它基于 Apache Lucene,最初由 Elasticsearch NV(现为 Elastic)于 2010 年发布。Elasticsearch 是 Elastic Stack 的一部分,Elastic Stack 是一套用于数据采集、丰富、存储、分析和可视化的免费开源工具。
Elasticsearch 可应对各种应用场景——它集中存储数据,实现闪电般的搜索速度、精准的相关性以及易于扩展的复杂分析。它可横向扩展,每秒处理数十亿个事件,同时自动控制索引和查询在集群中的分布,从而实现流畅的操作。
主要特点
- 集群和高可用性。
- 自动节点恢复和数据重新平衡。
- 水平扩展性。
- 跨集群和数据中心复制,允许辅助集群作为热备份运行。
- 跨数据中心复制。
- Elasticsearch 可以识别错误,从而保证集群(和数据)的安全性和可访问性。
- 采用分布式架构,从底层构建,旨在提供持续的安心保障。
9. Vespa

Vespa:https://vespa.ai/
开源?是的
GitHub 星标数:4.5k
它解决了什么问题?
Vespa 是一个开源数据服务引擎,允许用户在服务时存储、搜索、组织海量数据并进行机器学习判断。
庞大的数据集必须分散在众多节点上并并行检查,而 Vespa 平台可以为您处理这些任务,同时保持出色的可用性和性能。
主要特点
- 写入操作会在几毫秒内向客户端发出确认,确认操作完成后,写入的数据将持久化并在查询中可见。
- 在处理请求时,写入操作可以以每秒每个节点数千到数万次的持续速率进行。
- 数据复制时会采用可配置的冗余方式。
- 查询可以包含结构化过滤器、自由文本搜索运算符和向量搜索运算符的任意组合,以及巨大的张量和向量。
- 可以根据查询定义对查询匹配项进行分组和聚合。
- 所有比赛都被收录,即使它们同时在多台机器上运行。
10. Vald

开源?是的
GitHub 星标数:1274
它解决了什么问题?
Vald 是一款分布式、可扩展且快速的向量搜索引擎。它以云原生架构为设计理念,采用速度最快的 ANN 算法 NGT 来帮助寻找邻居。
Vald 提供自动矢量索引和索引备份,以及水平扩展功能,使其能够搜索数十亿个要素矢量数据。它易于使用且高度可配置——例如,高度可配置的入口/出口过滤器,您可以对其进行自定义以与 gRPC 接口配合使用。
主要特点
- Vald 通过对象存储或持久卷提供自动备份,从而实现灾难恢复。
- 它将向量索引分发给众多代理,每个代理都保留一个唯一的索引。
- 该工具通过将每个索引存储在多个代理中来复制索引。当 Vald 代理发生故障时,会自动重新平衡副本。
- 高度灵活——您可以选择矢量维度、副本数量等等。
- 支持 Python、Golang、Java、Node.js 等多种编程语言。
11. ScaNN

ScaNN:https://github.com/google-research/google-research/tree/master/scann
开源?是的
GitHub 星标数:–
它解决了什么问题?
ScaNN(可扩展最近邻算法)是一种高效大规模搜索向量相似性的方法。谷歌的 ScaNN 提出了一种全新的压缩方法,显著提高了准确率。根据ann-benchmarks.com 的数据,这使其性能比其他向量相似性搜索库高出两倍。
它包含了最大内积搜索的搜索空间修剪和量化,以及欧氏距离等其他距离函数。该实现适用于支持 AVX2 指令集的 x86 处理器。
12. Pgvector

Pgvector:https://github.com/pgvector/pgvector
开源?是的
GitHub 星标数:4.5k
它解决了什么问题?
pgvector 是 PostgreSQL 的一个扩展,用于搜索向量相似度。它还可以用于存储向量嵌入。总而言之,pgvector 可以帮助您将所有应用程序数据存储在一个地方。
它的用户可以享受到 ACID 合规性、时间点恢复、JOIN 以及我们喜爱 PostgreSQL 的所有其他出色功能带来的好处。
主要特点
- 精确和近似最近邻搜索
- L2距离、内积和余弦距离
- 任何带有 PostgreSQL 客户端的语言
13. Faiss

Faiss:https://github.com/facebookresearch/faiss
开源?是的
GitHub 星标数:2.3 万
它解决了什么问题?
Faiss 由 Facebook AI Research 开发,是一个用于快速、密集向量相似性搜索和分组的开源库。它包含用于搜索任意大小向量集的方法,甚至可以处理超出内存容量的向量集。此外,它还附带用于评估和参数调整的代码。
Faiss 基于一种索引类型,该索引类型维护一组向量,并提供一个函数,可以使用 L2 向量和/或点积向量比较来搜索这些向量。某些索引类型,例如精确搜索,是简单的基线。
主要特点
- 不仅返回最近的邻居,还返回第二近邻、第三近邻和第 k 近邻。
- 您可以一次搜索多个向量,而不是一次只搜索一个(批量处理)。
- 采用最大内积搜索,而不是最小欧几里得搜索。
- 其他距离(L1、Linf 等)也在一定程度上得到支持。
- 返回查询位置指定半径内的所有元素(范围搜索)。
- 你可以将索引保存到磁盘,而不是存储在 RAM 中。
14. ClickHouse

ClickHouse:https://clickhouse.com/
开源?是的
GitHub 星标数:31.8k
它解决了什么问题?
ClickHouse 是一款开源的列式数据库管理系统 (DBMS),专为在线分析处理而设计,用户可以通过运行 SQL 查询实时生成分析报告。列式 DBMS 设计是 ClickHouse 的核心所在。这种独特的设计实现了紧凑的存储空间,避免了与值相关的冗余数据,从而显著提升了处理性能。
它使用向量来处理数据,从而提高了 CPU 效率,并造就了 ClickHouse 的卓越速度。
主要特点
- 数据压缩功能可以显著提高 ClickHouse 的性能。
- ClickHouse 将低延迟数据提取与使用标准硬盘的成本效益相结合。
- 它采用多核和多服务器配置来加速大规模查询,这在列式数据库管理系统中是一个罕见的特性。
- ClickHouse 拥有强大的 SQL 支持,能够出色地处理各种查询。
- ClickHouse 的持续数据添加和快速索引功能满足实时需求。
- 其低延迟特性可实现快速查询处理,这对在线活动至关重要。
15. OpenSearch

OpenSearch: https: //opensearch.org/
开源?是的
GitHub 星标数:–
它解决了什么问题?
在众多向量数据库方案中,OpenSearch 是一个颇具特色的解决方案。它将传统搜索、分析和向量搜索的强大功能整合到一个统一的解决方案中。OpenSearch 的向量数据库特性能够最大限度地减少开发人员在运维、管理和集成 AI 生成资产方面所需的工作量,从而加速 AI 应用的开发。
您可以导入您的模型、向量和信息,以实现向量、词汇和混合搜索与分析,并具有内置的性能和可扩展性。
主要特点
- 作为矢量数据库,OpenSearch 可用于多种用途,例如搜索、个性化、数据质量和矢量数据库引擎。
- 在其搜索应用案例中,您可以找到多模态搜索、语义搜索、视觉搜索和人工智能代理。
- 您可以使用协同过滤技术创建产品和用户嵌入,并使用 OpenSearch 为您的推荐引擎提供动力。
- 为了帮助进行数据质量操作,OpenSearch 用户可以使用相似性搜索来自动匹配和检查数据中的模式和重复项。
- 该解决方案允许您创建一个平台,该平台集成了一个 Apache 2.0 许可的向量数据库,为嵌入和幂向量搜索提供可靠且可扩展的解决方案。
16. Apache Cassandra

Apache Cassandra:https://cassandra.apache.org/
开源?是的
GitHub 星标数:8.3k
它解决了什么问题?
Cassandra 是一个分布式、宽列式存储的 NoSQL 数据库管理系统,它是免费开源的。它的设计目标是在众多通用服务器上处理海量数据,同时保持高可用性,避免单点故障。
Cassandra 即将配备向量搜索功能,这体现了 Cassandra 社区致力于快速交付可靠创新成果的决心。Cassandra 因其能够帮助人工智能开发者和处理大数据量的企业构建复杂的数据驱动型应用程序,而日益受到他们的青睐。
主要特点
- Cassandra 将新增一种数据类型,以方便存储高维向量。这将允许对 Float32 嵌入进行操作和存储,而 Float32 嵌入在人工智能应用中被广泛使用。
- 该工具还将提供一个名为“VectorMemtableIndex”的新型存储附加索引(SAI),以支持近似最近邻(ANN)搜索功能。
- 它将提供一个新的 Cassandra 查询语言 (CQL) 运算符 ANN OF,使用户更容易在其数据上运行 ANN 搜索。
- Cassandra 的新向量搜索功能被设计为现有 SAI 框架的扩展,无需重新设计基本索引引擎。
17. KDB.AI

开源?不。
GitHub 星标数:–
它解决了什么问题?
KDB.AI 是一个基于知识的向量数据库和搜索引擎,它通过为使用实时数据的 AI 应用提供增强的搜索、推荐和个性化功能,使开发者能够创建可扩展、可靠和实时的应用。
主要特点
- KDB.AI 在向量数据库中独树一帜,因为它允许开发人员向其 AI 应用程序添加时间和语义上下文。
- KDB.AI 可与流行的 LLM 和机器学习工作流程及工具(如 LangChain 和 ChatGPT)无缝集成。
- 它对 Python 和 RESTful API 的原生支持,使开发人员能够在他们喜欢的应用程序和语言中执行数据摄取、搜索和分析等常见操作。
最佳矢量数据库:比较
| 数据库 | 开源 | 支持的索引类型 |
|---|---|---|
| 松果 | 不 | – |
| MongoDB | 不 | 新南威尔士州卫生厅 |
| 米尔沃斯 | 是的 | 多种索引类型:FLAT、IVF_FLAT、IVF_PQ、IVF_SQ8、HNSW、HNSW_SQ、HNSW_PQ、HNSW_PRQ 和 SCANN |
| 色度 | 是的 | 新南威尔士州卫生厅 |
| 韦维特 | 是的 | 新南威尔士州卫生厅 |
| 深湖 | 是的 | 倒置和 BM25 |
| Qdrant | 是的 | 新南威尔士州卫生厅 |
| Elasticsearch | 不 | HNSW(32 位、8 位或 4 位)FLAT(32 位、8 位或 4 位) |
| 维斯帕 | 是的 | 新南威尔士州卫生厅 |
| 瓦尔德 | 是的 | 国家科技法庭 |
| 扫描 | 是的 | 扫描 |
| Pgvector | 是的 | HNSW/IVFFlat |
| 费斯 | 是的 | HNSW、IVFFlat、LSH、PQ 等 |
| 克里克豪斯 | 是的 | 新南威尔士州卫生厅 |
| OpenSearch | 是的 | 新南威尔士州卫生厅 |
| Apache Cassandra | 是的 | 新南威尔士州卫生厅 |
| KDB.AI | 不 | 多种指数类型:Flat、qFlat、IVF、IVFPQ、HNSW 和 qHnsw |
如何为您的项目选择最佳矢量数据库
选择合适的矢量数据库会对您的应用程序产生重大影响,但这并非易事。您需要考虑诸多因素,从数据库的性能和可扩展性到与现有系统的互操作性。在为您的项目选择矢量数据库时,请考虑以下因素:
- 搜索准确度:数据库应返回准确的搜索结果。这对于需要高精度的应用尤为重要。
- 可扩展性:随着数据量的增长,数据库应该能够跟上需求,而不会牺牲性能。
- 性能:评估数据库的速度和效率。这包括数据存储、检索和搜索的速度。
- 语言客户端:这些是特定于编程语言的库,允许开发人员与数据库进行交互。为了简化集成过程,请选择既直观又高效的语言客户端。
- 数据类型支持:请确保数据库支持您将要使用的数据类型。某些数据库比其他数据库更适合处理特定数据类型。
- 系统集成:考虑数据库与现有系统的连接情况。顺畅的集成可以节省时间和资源。
- 文档:您必须拥有详细的文档,以便在构建实现方案时遵循重要的指导原则。文档还应提供故障排除和优化建议。
专家提示:使用提交锁定快照将矢量存储与数据实际情况解耦
不要让 Milvus、pgvector、Pinecone 或 Weaviate 左右你的端到端技术栈。将你的嵌入、索引清单和编码器参数版本化地存储在 lakeFS 中,并通过提交 ID而不是可变路径来公开一个稳定的“语义数据集” 。
这样一来,您就可以获得可复现的输入,并且能够在不破坏 RAG 或搜索相关性的情况下热插拔 ANN 后端(HNSW/IVF/SCANN)。
- 将 RAG 管道固定到特定的 lakeFS 提交,以实现一致的召回/延迟。
- 当编码器/参数发生变化时,在专用功能分支上构建或重建索引。
- 在合并之前,在 CI/CD 中验证 QoS(recall@k、尾延迟)。
- 标记并推广成功的项目。
- 立即回滚到上一个提交/标签。
策略建议:将索引构建版本视为发布版本;仅发布符合相关性和服务级别目标 (SLO) 要求的版本。对每个构建版本进行版本控制,并让自动化流程控制哪个标签被视为生产版本。
技术和工作流程背景:使用 Spark 或 Ray 生成嵌入,使用 dbt 生成上游特征,使用 Airflow 或 Dagster 编排分支→ 构建 → 基准测试 → 标签 → 合并周期。
导出器发布索引文件(HNSW/IVF/PQ/ScaNN)或后端应用清单,以及Milvus、pgvector、Weaviate 或 Pinecone 的解析器映射{commit → vector 后端 URI} 。
工程影响或权衡:
- 优点:可复现性、后端灵活性以及通过版本化提交实现一键回滚。
- 缺点:需要额外的存储空间来存储嵌入和索引工件——通过 lakeFS 的零拷贝分支和未标记构建的保留/GC 策略来缓解。
结论
随着现实世界的数据越来越多地以图像、视频和自然语言等复杂、非结构化内容的形式出现,传统数据库往往难以满足需求。向量数据库弥补了这一空白,为管理和检索驱动现代人工智能应用的向量嵌入提供了强大的解决方案。
与关系型数据库或 NoSQL 数据库不同,向量数据库是专为满足基于神经网络的搜索和 LLM 工具的需求而构建的。我们希望这份对 17 种主流向量数据库的详细概述能够帮助您找到最符合项目需求的数据库。随着人工智能持续主导科技行业,向量数据库将变得司空见惯,市场上涌现出越来越多的相关工具也指日可待。

4296

被折叠的 条评论
为什么被折叠?



