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

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

通道

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

Collections

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

依赖程序

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

动态模式 Schema

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

嵌入

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

实体

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

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

字段

Milvus Collections 中的字段相当于 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 迁移是一个开源工具,旨在方便将数据从各种数据源轻松迁移到 Milvus 2.x。

Milvus 集群

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

Milvus 单机版

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

多向量

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

分区

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

分区键

字段的 Partition Key 属性可根据实体的 Partition Key 值将实体隔离成不同的分区。这种分组可确保将共享相同键值的实体存储在一起,这样可以在通过分区键字段过滤的查询过程中,让系统绕过无关的分区,从而加快搜索操作。更多信息,请参阅使用分区关键字

PC 通道

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

PyMilvus

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

查询

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

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

模式

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

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

数据段

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

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

Spark-Milvus 连接器

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

碎片

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

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

稀疏向量

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

非结构化数据

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

VChannel

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

向量

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

Zilliz Cloud

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