本页面旨在通过回答几个问题来让您大致了解 Milvus。读完本页后,您将了解 Milvus 是什么、它是如何工作的、关键概念、为什么使用 Milvus、支持的索引和指标、示例应用程序、架构和相关工具。
Milvus 于 2019 年创建,其目标只有一个:存储、索引和管理由深度神经网络和其他机器学习 (ML) 模型生成的大量嵌入向量。
作为专门为处理输入向量查询而设计的数据库,它能够对万亿规模的向量进行索引。与现有的关系数据库主要处理遵循预定义模式的结构化数据不同,Milvus 是自下而上设计的,用于处理从非结构化数据转换而来的嵌入向量。
随着互联网的发展和发展,非结构化数据变得越来越普遍,包括电子邮件、论文、物联网传感器数据、Facebook 照片、蛋白质结构等等。为了让计算机理解和处理非结构化数据,使用嵌入技术将这些数据转换为向量。 Milvus 存储并索引这些向量。 Milvus 能够通过计算两个向量的相似距离来分析它们之间的相关性。如果两个嵌入向量非常相似,则意味着原始数据源也相似。

如果您不熟悉矢量数据库和相似性搜索领域,请阅读以下关键概念的解释,以获得更好的理解。
了解有关 Milvus 术语表的更多信息。
非结构化数据,包括图像、视频、音频和自然语言,是不遵循预定义模型或组织方式的信息。这种数据类型约占全球数据的 80%,并且可以使用各种人工智能 (AI) 和机器学习 (ML) 模型转换为向量。
嵌入向量是非结构化数据的特征抽象,例如电子邮件、物联网传感器数据、Instagram 照片、蛋白质结构等等。从数学上来说,嵌入向量是浮点数或二进制数的数组。现代嵌入技术用于将非结构化数据转换为嵌入向量。
向量相似性搜索是将向量与数据库进行比较以查找与查询向量最相似的向量的过程。近似最近邻(ANN)搜索算法用于加速搜索过程。如果两个嵌入向量非常相似,则意味着原始数据源也相似。
索引是数据的组织单位。您必须先声明索引类型和相似性度量,然后才能搜索或查询插入的实体。如果不指定索引类型,Milvus 将默认进行暴力搜索(brute-force search)。
有关详细信息,请参阅向量索引。
在 Milvus 中,相似度度量用于衡量向量之间的相似度。选择良好的距离度量有助于显着提高分类和聚类性能。根据输入数据形式,选择特定的相似性度量以获得最佳性能。
广泛用于浮点嵌入的指标包括:
广泛用于二进制嵌入的指标包括:
有关更多信息,请参阅相似性度量。
Milvus 可以轻松地将相似性搜索添加到您的应用程序中。 Milvus 的示例应用包括:
更多 Milvus 应用场景请参见 Milvus 教程和 Milvus 采用者。
Milvus 作为云原生向量数据库,在设计上将存储和计算分离。为了增强弹性和灵活性,Milvus 中的所有组件都是无状态的。
该系统分为四个级别:
有关更多信息,请参阅架构概述。

Milvus 有丰富的 API 和工具支持,以促进 DevOps。
Milvus 有封装在 Milvus API 之上的客户端库,可用于通过应用程序代码以编程方式插入、删除和查询数据:
我们正在努力启用更多新的客户端库。如果您愿意贡献,请前往 Milvus 项目相应的存储库。
Milvus 生态系统提供了有用的工具,包括:
Attu, Milvus 的图形化管理系统。
MilvusDM (Milvus 数据迁移),一款专门用于使用 Milvus 导入和导出数据的开源工具。
Milvus sizing tool, Milvus 估算工具,可帮助您估算指定数量的各种索引类型向量所需的原始文件大小、内存大小和稳定磁盘大小。