术语
AutoID
AutoID 是主键字段的一项属性。启用 AutoID 后,Milvus 会在写入 Entity 时自动分配主键值。AutoID 值基于时间戳生成,但其数值不保证连续或严格递增。有关详细信息,请参阅 create_schema。
自动索引
Milvus 根据经验数据自动为特定字段决定最合适的索引类型和参数。这非常适合不需要控制特定索引参数的情况。更多信息,请参阅 add_index。
Attu
Attu 是 Milvus 的一体化管理工具,可显著降低系统管理的复杂性和成本。
Birdwatcher
Birdwatcher 是 Milvus 的调试工具,可连接 etcd,实时监控 Milvus 服务器的状态并进行调整。它还支持 etcd 文件备份,帮助开发人员排除故障。
Bulk Writer(批量写入工具)
Bulk Writer 是 Milvus SDK 提供的数据处理工具,用于将原始数据集转换为 Milvus Bulk Import 可直接读取的文件格式。
Bulk Insert(批量插入)
Bulk Insert 通过导入预先准备的数据文件写入大规模数据,适用于吞吐量优先的离线数据导入场景。
Cardinal
Cardinal 是由 Zilliz Cloud 开发的向量搜索算法,面向高搜索质量和高性能场景。通过算法设计和工程优化,Cardinal 相较 Knowhere 可实现数倍至一个数量级的性能提升,并能自适应不同的 top-K、过滤率和数据分布。
Channel
Milvus 使用两类 Channel:PChannel (physical channel)和 VChannel (virtual channel)。PChannel 对应消息存储中的物理 Topic,VChannel 对应 Collection 中的一个逻辑 Shard;多个 VChannel 可以共享底层 PChannel 的物理资源。
Collection
Collection 是 Milvus 中用于存储和管理 Entity 的主要逻辑对象,类似于关系数据库管理系统(RDBMS)中的表。Collection 由 Schema 定义,并可包含多个 Partition 和 Segment。更多信息,请参阅 管理 Collection。
依赖项
依赖项是另一个程序赖以运行的程序。Milvus 的依赖项包括 etcd(存储元数据)、MinIO 或 S3(对象存储)和 Pulsar(管理快照日志)。更多信息,请参阅 管理依赖关系。
动态 Schema
动态 Schema(Dynamic Schema)允许在不修改现有 Collection Schema 的情况下,写入包含未预定义字段的 Entity。启用 Dynamic Field 后,这些额外字段会作为键值对存储在系统保留的 JSON 字段 $meta 中;已显式定义的 Field 仍然按照 Schema 校验。更多信息,请参阅 启用 Dynamic Field。
Embedding Function
Embedding Function 用于将文本、图像等原始数据编码为 Embedding 向量。在 Milvus v2.5.x 中,可以使用 PyMilvus model 子包提供的 Embedding Function 调用受支持的模型或 Provider,并在写入和搜索前生成向量。更多信息,请参阅 Embedding。
Entity
Entity 是 Collection 中的一条数据记录,由一组 Field 构成,并包含主键字段。主键值可以由应用提供,也可以在启用 AutoID 后由 Milvus 自动分配。Milvus 当前不会对用户提供的主键值执行去重,因此同一 Collection 中可能写入重复的主键值。更多信息,请参阅 插入 Entity。
Field
Field 是 Collection Schema 中定义的数据列,类似于 RDBMS 表中的列。Field 可以是存储数字、字符串等结构化数据的标量 Field,也可以是存储 Embedding 的向量 Field。
Filter
Filter 是 Search 或 Query 请求中使用的布尔表达式,由作用于标量 Field 的谓词组成。Milvus 根据 Filter 筛选符合条件的 Entity;在向量 Search 中,Filter 用于缩小 ANN Search 的候选范围。更多信息,请参阅 过滤表达式。
过滤搜索
过滤搜索将标量过滤器应用于向量搜索,允许你根据特定条件完善搜索结果。更多信息,请参阅 过滤搜索。
Hybrid Search
Hybrid Search 会执行多路 ANN Search(通常针对不同向量字段或不同向量表示),再通过 Reranker 或分数融合生成统一排序结果。它不同于将标量 Filter 与单路向量 Search 组合的 Filtered Search。
索引
向量索引是从原始数据衍生出来的重组数据结构,可以大大加快向量相似性搜索的过程。Milvus 支持向量字段和标量字段的多种索引类型。更多信息,请参阅 向量索引类型。
Kafka-Milvus 连接器
Kafka-Milvus 连接器 指的是 Milvus 的 Kafka Sink Connector。它允许你将向量数据从 Kafka 流式传输到 Milvus。
Knowhere
Knowhere 是 Milvus 的核心向量执行引擎,它集成了多个向量相似性搜索库,包括 Faiss、Hnswlib 和 Annoy。Knowhere 还旨在支持异构计算。它可以控制在哪个硬件(CPU 或 GPU)上执行索引构建和搜索请求。Knowhere 的名称也由此而来,即“知道在哪里执行”。
日志代理
日志代理 是一个支持回放的发布-订阅系统。它负责流式数据持久化、执行可靠的异步查询、事件通知和返回查询结果。当工作节点从系统故障中恢复时,它还能确保增量数据的完整性。
Log snapshot(日志快照)
Log snapshot 是 Segment 内用于记录和持久化数据变更的 Binlog(binary log),也是 Segment 数据持久化的较小单元。一个 Segment 的数据会写入多个 Binlog;Milvus 中的 Binlog 类型包括 InsertBinlog、DeleteBinlog 和 DDLBinlog。更多信息,请参阅 元存储。
日志订阅者
日志订阅者订阅日志序列以更新本地数据,并以只读副本的形式提供服务。
消息存储
消息存储是 Milvus 的日志存储引擎。Milvus v2.5.x 支持使用 Kafka 或 Pulsar 作为消息存储。更多信息,请参阅 配置消息存储。
度量类型
相似度度量类型用于度量向量之间的相似度。目前,Milvus 支持欧氏距离(L2)、内积(IP)、余弦相似度(COSINE)和二进制向量距离度量。你可以根据你的情况选择最合适的度量类型。更多信息,请参阅 "相似度量"。
Mmap
Mmap(memory mapping)利用操作系统虚拟内存,将字段原始数据或索引文件映射到进程地址空间,并按需通过 Page Cache 加载数据页,而不是一次性将全部数据载入内存。它可以提高单机可承载的数据量;如果活跃数据集显著超过可用内存,频繁缺页会增加 Search 和 Query 延迟。更多信息,请参阅 Mmap。
Milvus 备份
Milvus 备份 是一种创建数据副本的工具,可用于在数据丢失事件发生后恢复原始数据。
Milvus CDC
Milvus CDC (变更数据捕获)是一个用户友好型工具,可以捕获和同步 Milvus 实例中的增量数据。它通过在源实例和目标实例之间无缝传输数据来确保业务数据的可靠性,从而轻松实现增量备份和灾难恢复。
Milvus CLI
Milvus 命令行界面 (CLI)是一种命令行工具,支持数据库连接、数据操作和数据导入导出。它基于 Milvus Python SDK,允许通过终端使用交互式命令行提示执行命令。
Milvus 迁移
Milvus 迁移 是一个开源工具,旨在方便将数据从各种数据源轻松迁移到 Milvus 2.x。
Milvus 集群
在 Milvus 集群部署 中,服务由一组节点提供,以实现高可用性和易扩展性。
Milvus Standalone
在 Milvus 的 独立部署 中,所有操作包括数据插入、索引建立和向量相似性搜索都在一个进程中完成。
多向量
Milvus 自 2.4.0 起支持在一个 Collection 中使用多个向量字段。更多信息,请参阅 混合搜索。
Partition
Partition 是对 Collection 的划分。Milvus 支持在物理存储上将 Collection 数据分成多个部分。这一过程称为 Partition,每个 Partition 可以包含多个 Segment。有关详细信息,请参阅 管理 Partition。
Partition Key
Partition Key 是标量 Field 的一项 Schema 属性。启用后,Milvus 根据 Entity 的 Partition Key 值计算哈希并将其路由到目标 Partition,使相同键值映射到同一 Partition。在 Search 或 Query 的 Filter 中指定 Partition Key 条件后,Milvus 可以执行 Partition Pruning,跳过无关 Partition。更多信息,请参阅 使用 Partition Key。
PChannel
PChannel 是 physical channel 的缩写。每个 PChannel 对应消息存储中的一个物理 Topic,用于承载数据插入、删除和更新记录。默认情况下,Milvus 集群启动时会分配 16 个 PChannel。更多信息,请参阅 消息通道配置。
PyMilvus
PyMilvus 是 Milvus 的 Python SDK。其源代码开源并托管在 GitHub 上。你可以灵活选择 MilvusClient(新版 Python SDK)或原始 ORM 模块与 Milvus 通信。
Query
Query 使用布尔表达式执行标量过滤,并返回符合条件的 Entity 及指定的输出 Field。
Range Search
Range Search 返回与查询向量的距离或相似度得分落在指定范围内的 Entity。该范围由 radius 和可选的 range_filter 定义,边界关系取决于所使用的 Metric Type。更多信息,请参阅 Range Search。
Schema
Schema 定义 Collection 的数据模型和约束。Collection Schema 包含各 Field Schema、主键、AutoID、Dynamic Field 设置及 Collection 描述;Field Schema 则定义 Field 名称、数据类型以及维度、最大长度等类型相关属性。更多信息,请参阅 管理 Schema。
Search
Search 使用查询向量执行 ANN 向量相似性搜索并返回最相似的 Entity。Search 请求还可以指定 Filter、返回数量和输出 Field。
Segment
Segment 是 Milvus 组织和存储 Collection 数据的基本单元,由系统自动创建。一个 Collection 可以包含多个 Segment,Search 会汇总各 Segment 的结果。
Segment 的主要运行状态包括 Growing Segment 和 Sealed Segment。Growing Segment 接收新写入;达到容量、空闲时间或其他封存条件后,Segment 会停止接收写入,其数据被刷写到对象存储并转为面向读取的 Sealed Segment。后续写入会进入新的 Growing Segment。更多信息,请参阅 设计细节。
Spark-Milvus 连接器
Spark-Milvus Connector 提供 Apache Spark 和 Milvus 之间的无缝集成,将 Apache Spark 的数据处理和机器学习(ML)功能与 Milvus 的向量数据存储和搜索功能相结合。
Shard
Milvus 通过使用基于主键散列组织的分片将写操作分布在多个节点上,从而提高了数据写入性能。这充分利用了集群的并行计算能力。
Partition 通过指定 Partition 名称来减少读取负载,而分片则将写入负载分散到多个服务器上。
稀疏向量
稀疏向量是一种大多数维度为零、仅少量维度具有非零值的向量表示;这些非零元素通常对应词项及其权重。SPLADEv2 等稀疏向量模型在关键词感知、可解释性和域外知识检索方面具有优势。更多信息,请参阅 稀疏向量。
非结构化数据
非结构化数据包括图像、视频、音频和自然语言,是不遵循预定义模型或组织方式的信息。这种数据类型约占全球数据的 80%,可使用各种人工智能(AI)和 ML 模型转换成向量。
VChannel
VChannel 是 virtual channel 的缩写。每个 VChannel 表示 Collection 中的一个逻辑 Shard,用于组织该 Shard 的插入、删除和更新记录。VChannel 在逻辑上彼此隔离,但会复用底层 PChannel 的物理资源。更多信息,请参阅 数据写入流程。
向量
Embedding 向量是对文本、图像、音频等非结构化数据特征的数值表示。在 Milvus 中,向量可以表示为浮点数数组或二进制向量;Milvus 还支持仅少量维度为非零值的稀疏向量。
Zilliz Cloud
Zilliz Cloud 是全托管的 Milvus 服务,提供企业级能力和经过优化的性能。