milvus-logo
LFAI
首页
  • 概念

术语

自动增益

AutoID 是主字段的一个属性,用于决定是否启用主字段的自动递增。AutoID 的值根据时间戳定义。有关详细信息,请参阅create_schema

自动索引

Milvus 会根据经验数据自动为特定字段决定最合适的索引类型和参数。这非常适合不需要控制特定索引参数的情况。更多信息,请参阅add_index

Attu

Attu是 Milvus 的一体化管理工具,可大大降低系统管理的复杂性和成本。

Birdwatcher

Birdwatcher是 Milvus 的调试工具,可连接到 etcd,让你实时监控 Milvus 服务器的状态并进行调整。它还支持 etcd 文件备份,帮助开发人员排除故障。

批量编写工具

Bulk Writer是 Milvus SDK(如 PyMilvus、Java SDK)提供的数据处理工具,旨在将原始数据集转换为与 Milvus 兼容的格式,以便高效导入。

批量插入

批量插入(Bulk Insert)是一种应用程序接口(API),通过允许在单个请求中导入多个文件来提高写入性能,从而优化大型数据集的操作。

Cardinal

由 Zilliz Cloud 开发的 Cardinal 是一种尖端向量搜索算法,可提供无与伦比的搜索质量和性能。凭借其创新的设计和广泛的优化,Cardinal 的性能比 Knowhere 高出数倍到一个数量级,同时还能自适应地处理各种生产场景,如不同的 K 大小、高过滤、不同的数据分布等。

通道

Milvus 使用两种类型的通道:PC通道和V 通道。每个 PC 通道对应一个日志存储主题,而每个 V 通道对应一个集合中的分片。

集合

在 Milvus 中,集合相当于关系数据库管理系统(RDBMS)中的表。集合是用于存储和管理实体的主要逻辑对象。更多信息,请参阅管理集合

依赖程序

依赖程序是另一个程序赖以运行的程序。Milvus 的依赖程序包括 etcd(存储元数据)、MinIO 或 S3(对象存储)和 Pulsar(管理快照日志)。更多信息,请参阅管理依赖关系

动态模式

动态模式允许您在不修改现有模式的情况下,向集合中插入带有新字段的实体。这意味着您可以在不知道集合完整模式的情况下插入数据,并包含尚未定义的字段。在创建数据集时,可以通过启用Dynamic Field来启用这种无模式功能。有关详细信息,请参阅启用Dynamic Field

嵌入

Milvus 提供内置嵌入功能,可与流行的嵌入提供商配合使用。在 Milvus 中创建数据集之前,您可以使用这些功能为数据集生成嵌入,从而简化准备数据和向量搜索的过程。要在实际操作中创建嵌入,请参阅使用 PyMilvus 的模型生成文本嵌入

实体

实体由一组表示现实世界对象的字段组成。Milvus 中的每个实体都有一个唯一的主键。

你可以自定义主键。如果不手动配置,Milvus 会自动为实体分配主键。如果你选择自定义主键,请注意 Milvus 暂时不支持主键去重。因此,同一集合中可能会有重复的主键。有关详细信息,请参阅插入实体

字段

Milvus 数据集中的字段相当于 RDBMS 表中的列。字段可以是结构化数据(如数字、字符串)的标量字段,也可以是嵌入向量的向量字段。

过滤

Milvus 支持通过谓词搜索进行标量过滤,允许在查询和搜索中定义过滤条件,以完善搜索结果。

过滤搜索将标量过滤器应用于向量搜索,允许你根据特定条件完善搜索结果。更多信息,请参阅过滤搜索

混合搜索是自 Milvus 2.4.0 以来用于混合搜索的 API。您可以搜索多个向量场并进行融合。对于与标量字段过滤相结合的向量搜索,称为 "过滤搜索"。更多信息,请参阅混合搜索

索引

向量索引是从原始数据衍生出来的重组数据结构,可以大大加快向量相似性搜索的过程。Milvus 支持向量场和标量场的多种索引类型。更多信息,请参阅向量索引类型

Kafka-Milvus 连接器

Kafka-Milvus 连接器指的是 Milvus 的 Kafka 汇连接器。它允许你将向量数据从 Kafka 流式传输到 Milvus。

Knowhere

Knowhere是 Milvus 的核心向量执行引擎,它集成了多个向量相似性搜索库,包括 Faiss、Hnswlib 和 Annoy。Knowhere 还旨在支持异构计算。它可以控制在哪个硬件(CPU 或 GPU)上执行索引构建和搜索请求。这就是 Knowhere 名字的由来--知道在哪里执行操作。

日志代理

日志代理是一个支持回放的发布-订阅系统。它负责流式数据持久化、执行可靠的异步查询、事件通知和返回查询结果。当工作节点从系统故障中恢复时,它还能确保增量数据的完整性。

日志快照

日志快照是二进制日志,是记录和处理 Milvus 数据更新和更改的较小单元。段中的数据会在多个二进制日志中持久化。Milvus 中有三种二进制日志:插入日志(InsertBinlog)、删除日志(DeleteBinlog)和 DDLBinlog。有关详细信息,请参阅元存储

日志订阅者

日志订阅者订阅日志序列以更新本地数据,并以只读副本的形式提供服务。

消息存储

消息存储是 Milvus 的日志存储引擎。Milvus 支持 Kafka 或 Pulsa 作为消息存储。有关详细信息,请参阅配置消息存储

度量类型

相似度度量类型用于度量向量之间的相似度。目前,Milvus 支持欧氏距离 (L2)、内积 (IP)、余弦相似度 (COSINE) 和二进制度量类型。你可以根据你的情况选择最合适的度量类型。更多信息,请参阅 "相似度量"。

内存映射

内存映射文件可将文件内容直接映射到内存中,从而实现高效的数据处理。当内存有限且无法加载所有数据时,这种方法尤其有用。这种技术可以提高数据容量,并在一定程度上保持性能。但是,如果数据大大超出内存容量,搜索和查询速度就会大大降低。有关详细信息,请参阅启用 MMap 的数据存储

Milvus 备份

Milvus 备份是一种创建数据副本的工具,可用于在数据丢失事件发生后恢复原始数据。

Milvus CDC

Milvus CDC(变更数据捕获)是一种用户友好型工具,可捕获和同步 Milvus 实例中的增量数据。它通过在源实例和目标实例之间无缝传输数据来确保业务数据的可靠性,从而轻松实现增量备份和灾难恢复。

Milvus CLI

Milvus 命令行界面(CLI)是一种命令行工具,支持数据库连接、数据操作以及数据导入和导出。它基于Milvus Python SDK,允许通过终端使用交互式命令行提示执行命令。

Milvus 迁移

Milvus Migration是一个开源工具,旨在方便地将数据从各种数据源迁移到 Milvus 2.x。

Milvus 集群

在 Milvus集群部署中,服务由一组节点提供,以实现高可用性和易扩展性。

单机版 Milvus

在 Milvus 的独立部署中,包括数据插入、索引建立和向量相似性搜索在内的所有操作都在一个进程中完成。

多向量

Milvus 自 2.4.0 起支持在一个集合中包含多个向量场。更多信息,请参阅混合搜索

分区

分区是对集合的划分。Milvus 支持在物理存储上将集合数据分成多个部分。这一过程称为分区,每个分区可以包含多个部分。有关详细信息,请参阅管理分区

分区键

字段的分区键属性可根据实体的分区键值将实体划分为不同的分区。这种分组可确保将共享相同键值的实体存储在一起,从而在使用分区键字段过滤查询时允许系统绕过不相关的分区,从而加快搜索操作。更多信息,请参阅使用Partition Key

PC 通道

PChannel 表示物理通道。每个 PC 通道对应一个日志存储主题。默认情况下,当 Milvus 群集启动时,将分配一组 16 个 PChannels 用于存储记录数据插入、删除和更新的日志。有关详细信息,请参阅 "消息通道相关配置"。

PyMilvus

PyMilvus 是 Milvus 的 Python SDK。其源代码开源并托管在GitHub 上。你可以灵活选择 MilvusClient(新版 Python SDK)或原始 ORM 模块与 Milvus 通信。

查询

查询Query)是一个以指定的布尔表达式作为过滤器进行标量过滤的 API。更多信息,请参阅获取与标量查询

通过范围搜索,可以找到与搜索向量相距一定距离的向量。更多信息,请参阅范围搜索

模式

模式是定义数据类型和数据属性的元信息。每个集合都有自己的Collection Schema ,定义了集合的所有字段、自动 ID(主键)分配启用和集合描述。字段 Schema 也包含在Collection Schema 中,它定义了字段的名称、数据类型和其他属性。有关详细信息,请参阅管理 Schema

搜索是一种 API,用于执行进行向量相似性搜索的操作,执行时需要向量数据。更多信息,请参阅单向量搜索

数据段

段是一个自动创建的数据文件,用于存储插入的数据。一个集合可能包含多个分段,每个分段可以容纳许多实体。在向量相似性搜索过程中,Milvus 会检查每个分段以编译搜索结果。

段有两种类型:成长段和封存段。增长型网段会继续收集新数据,直到达到特定的阈值或时间限制,之后就会被封存。一旦封存,分段就不再接受新数据,并被转移到对象存储区。与此同时,传入的数据会被路由到新的增长段。达到预定义的实体限制或超过生长状态允许的最长持续时间,都会触发从生长网段到密封网段的转换。更多信息,请参阅设计细节

Spark-Milvus 连接器

Spark-Milvus Connector提供 Apache Spark 和 Milvus 之间的无缝集成,将 Apache Spark 的数据处理和机器学习(ML)功能与 Milvus 的向量数据存储和搜索功能相结合。

碎片

Milvus 通过使用基于主键散列组织的分片在多个节点上分发写操作来提高数据写入性能。这充分利用了集群的并行计算能力。

分区通过指定分区名称来减少读取负载,而分片则将写入负载分散到多个服务器上。

稀疏向量

稀疏向量使用向量嵌入来表示单词或短语,其中大部分元素为零,只有一个非零元素表示特定单词的存在。稀疏向量模型(如 SPLADEv2)在域外知识搜索、关键词感知和可解释性方面优于密集模型。更多信息,请参阅稀疏向量

非结构化数据

非结构化数据(包括图像、视频、音频和自然语言)是不遵循预定义模型或组织方式的信息。这种数据类型约占全球数据的 80%,可使用各种人工智能(AI)和 ML 模型转换成向量。

VChannel

VChannel是逻辑通道的缩写。每个 VChannel 代表一个集合中的一个分片。每个集合都会分配一组 VChannels,用于记录数据的插入、删除和更新。VChannels 在逻辑上是分开的,但在物理上共享资源。

向量

嵌入向量是对电子邮件、物联网传感器数据、Instagram 照片、蛋白质结构等非结构化数据的特征抽象。从数学角度讲,嵌入向量是浮点数或二进制数组。现代嵌入技术用于将非结构化数据转换为嵌入向量。Milvus 自 2.4.0 起支持密集向量和稀疏向量。

Zilliz 云

Zilliz Cloud 上全面管理 Milvus,具有更多企业级功能和高度优化的性能。