术语表
AutoID
AutoID 是主字段的一个属性,用于确定是否为主字段启用自动递增。AutoID 的值基于时间戳定义。有关更多信息,请参阅 create_schema。
Auto Index
Milvus 根据经验数据自动决定特定字段最合适的索引类型和参数。这对于您不需要控制具体索引参数的情况是理想的。有关更多信息,请参阅 add_index。
Attu
Attu 是 Milvus 的一体化管理工具,显著降低了管理系统的复杂性和成本。
Birdwatcher
Birdwatcher 是 Milvus 的调试工具,连接到 etcd,允许您监控 Milvus 服务器的状态并进行实时调整。它还支持 etcd 文件备份,帮助开发人员进行故障排除。
Bulk Writer
Bulk Writer 是 Milvus SDK(如 PyMilvus、Java SDK)提供的数据处理工具,旨在将原始数据集转换为与 Milvus 兼容的格式以进行高效导入。
Bulk Insert
Bulk Insert 是一个 API,通过允许在单个请求中导入多个文件来增强写入性能,优化大数据集操作。
Cardinal
Cardinal 是由 Zilliz Cloud 开发的前沿向量搜索算法,提供无与伦比的搜索质量和性能。凭借其创新的设计和大量优化,Cardinal 的性能比 Knowhere 高出几倍到一个数量级,同时自适应地处理各种生产场景,如不同的 K 值大小、高过滤、不同数据分布等。
Channel
Milvus 使用两种类型的 Channel:PChannel 和 VChannel。每个 PChannel 对应日志存储的一个主题,而每个 VChannel 对应 Collection 中的一个分片。
Collection
在 Milvus 中,Collection 相当于关系数据库管理系统(RDBMS)中的表。Collection 是用于存储和管理实体的主要逻辑对象。有关更多信息,请参阅 管理 Collection。
Dependency
依赖是另一个程序依赖工作的程序。Milvus 的依赖包括 etcd(存储元数据)、MinIO 或 S3(对象存储)和 Pulsar(管理快照日志)。有关更多信息,请参阅 管理依赖。
Dynamic schema
动态 Schema 允许您向 Collection 中插入具有新字段的实体,而无需修改现有 Schema。这意味着您可以在不知道 Collection 完整 Schema 的情况下插入数据,并且可以包含尚未定义的字段。您可以通过在创建 Collection 时启用动态字段来启用此无 Schema 功能。有关更多信息,请参阅 启用动态字段。
Embeddings
Milvus 提供与流行的 embedding 提供商配合使用的内置 embedding 功能。在 Milvus 中创建 Collection 之前,您可以使用这些功能为数据集生成 embedding,简化数据准备和向量搜索的过程。要在实际操作中创建 embedding,请参阅 使用 PyMilvus 的模型生成文本 Embedding。
Entity
实体由代表现实世界对象的一组字段组成。Milvus 中的每个实体都由唯一的主键表示。
您可以自定义主键。如果您不手动配置,Milvus 会自动为实体分配主键。如果您选择自定义主键,请注意 Milvus 目前不支持主键去重。因此,同一个 Collection 中可能存在重复的主键。有关更多信息,请参阅 插入实体。
Field
Milvus Collection 中的字段相当于 RDBMS 中表的列。字段可以是用于结构化数据的标量字段(如数字、字符串),也可以是用于 embedding 向量的向量字段。
Filter
Milvus 支持通过使用谓词进行搜索来进行标量过滤,允许您在查询和搜索中定义过滤条件以细化结果。
Filtered search
过滤搜索将标量过滤器应用于向量搜索,允许您根据特定条件细化搜索结果。有关更多信息,请参阅 过滤搜索。
Hybrid search
混合搜索 是自 Milvus 2.4.0 以来用于混合搜索的 API。您可以搜索多个向量字段并将它们融合。对于与标量字段过滤相结合的向量搜索,称为"过滤搜索"。有关更多信息,请参阅 混合搜索。
Index
向量索引是从原始数据派生的重新组织的数据结构,可以大大加速向量相似性搜索过程。Milvus 支持向量字段和标量字段的各种索引类型。有关更多信息,请参阅 向量索引类型。
Kafka-Milvus Connector
Kafka-Milvus Connector 是指 Milvus 的 Kafka sink connector。它允许您将向量数据从 Kafka 流式传输到 Milvus。
Knowhere
Knowhere 是 Milvus 的核心向量执行引擎,它集成了几个向量相似性搜索库,包括 Faiss、Hnswlib 和 Annoy。Knowhere 还设计为支持异构计算。它控制在哪种硬件(CPU 或 GPU)上执行索引构建和搜索请求。这就是 Knowhere 名称的由来——知道在哪里执行操作。
Log broker
日志代理 是支持回放的发布-订阅系统。它负责流数据持久化、可靠异步查询执行、事件通知和查询结果返回。它还确保工作节点从系统故障中恢复时增量数据的完整性。
Log snapshot
日志快照是二进制日志,是 segment 中记录和处理 Milvus 中数据更新和更改的较小单元。segment 的数据持久化在多个 binlog 中。Milvus 中有三种类型的 binlog:InsertBinlog、DeleteBinlog 和 DDLBinlog。有关更多信息,请参阅 元存储。
Log subscriber
日志订阅者订阅日志序列以更新本地数据并以只读副本的形式提供服务。
Message storage
消息存储是 Milvus 的日志存储引擎。Milvus 支持 Kafka 或 Pulsar 作为消息存储。有关更多信息,请参阅 配置消息存储。
Metric type
相似性度量类型用于衡量向量之间的相似性。目前,Milvus 支持欧几里得距离(L2)、内积(IP)、余弦相似性(COSINE)和二进制度量类型。您可以根据场景选择最合适的度量类型。有关更多信息,请参阅 相似性度量。
Mmap
内存映射文件通过将文件内容直接映射到内存中来实现高效的数据处理。这在内存有限且无法加载所有数据时特别有用。这种技术可以在一定程度上提高数据容量并保持性能。但是,如果数据大大超过内存容量,搜索和查询速度可能会显著降低。有关更多信息,请参阅 启用 MMap 的数据存储。
Milvus Backup
Milvus Backup 是用于创建数据副本的工具,可用于在数据丢失事件后恢复原始数据。
Milvus CDC
Milvus CDC(变更数据捕获)是一个用户友好的工具,可以捕获和同步 Milvus 实例中的增量数据。它通过在源实例和目标实例之间无缝传输数据来确保业务数据的可靠性,允许轻松进行增量备份和灾难恢复。
Milvus CLI
Milvus 命令行界面(CLI)是支持数据库连接、数据操作以及数据导入和导出的命令行工具。基于 Milvus Python SDK,它允许通过交互式命令行提示在终端中执行命令。
Milvus Migration
Milvus Migration 是一个开源工具,旨在便于将数据从各种数据源轻松迁移到 Milvus 2.x。
Milvus cluster
在 Milvus 的集群部署中,服务由一组节点提供,以实现高可用性和易扩展性。
Milvus standalone
在 Milvus 的独立部署中,包括数据插入、索引构建和向量相似性搜索在内的所有操作都在一个单一进程中完成。
Multi-Vector
自 2.4.0 以来,Milvus 在一个 Collection 中支持多个向量字段。有关更多信息,请参阅 混合搜索。
Partition
Partition 是 Collection 的一个分区。Milvus 支持将 Collection 数据在物理存储上分为多个部分。这个过程称为分区,每个 Partition 可以包含多个 segment。有关更多信息,请参阅 管理 Partition。
Partition key
字段的 Partition key 属性能够根据实体的 Partition key 值将实体分离到不同的 Partition 中。这种分组确保共享相同键值的实体存储在一起,这可以通过允许系统在由 Partition key 字段过滤的查询期间绕过无关 Partition 来加速搜索操作。有关更多信息,请参阅 使用 Partition Key。
PChannel
PChannel 代表物理通道。每个 PChannel 对应日志存储的一个主题。默认情况下,当 Milvus 集群启动时,将分配一组 16 个 PChannel 来存储记录数据插入、删除和更新的日志。有关更多信息,请参阅 消息通道相关配置。
PyMilvus
PyMilvus 是 Milvus 的 Python SDK。其源代码是开源的,托管在 GitHub 上。您可以灵活选择 MilvusClient(新版本 Python SDK)或原始 ORM 模块与 Milvus 通信。
Query
Query 是一个 API,使用指定的布尔表达式作为过滤器进行标量过滤。有关更多信息,请参阅 获取和标量查询。
Range search
范围搜索允许您找到位于搜索向量指定距离内的向量。有关更多信息,请参阅 范围搜索。
Schema
Schema 是定义数据类型和数据属性的元信息。每个 Collection 都有自己的 Collection Schema,定义 Collection 的所有字段、自动 ID(主键)分配启用和 Collection 描述。字段 Schema 也包含在 Collection Schema 中,定义字段的名称、数据类型和其他属性。有关更多信息,请参阅 管理 Schema。
Search
Search 是一个 API,执行向量相似性搜索操作,需要向量数据来执行。有关更多信息,请参阅 单向量搜索。
Segment
Segment 是自动创建的数据文件,用于存储插入的数据。一个 Collection 可能包含多个 segment,每个 segment 可以容纳许多实体。在向量相似性搜索期间,Milvus 检查每个 segment 以编译搜索结果。
有两种类型的 segment:growing 和 sealed。growing segment 继续收集新数据,直到达到特定阈值或时间限制,之后它变成 sealed。一旦 sealed,segment 不再接受新数据并被转移到对象存储。同时,传入数据被路由到新的 growing segment。从 growing 到 sealed segment 的转换是通过达到预定义的实体限制或超过在 growing 状态下允许的最大持续时间触发的。有关更多信息,请参阅 设计细节。
Spark-Milvus Connector
Spark-Milvus Connector 提供 Apache Spark 和 Milvus 之间的无缝集成,结合 Apache Spark 的数据处理和机器学习(ML)功能与 Milvus 的向量数据存储和搜索功能。
Shard
Milvus 通过使用基于主键哈希组织的分片在多个节点之间分布写操作,从而增强数据写入性能。这利用了集群的并行计算能力。
分区通过指定分区名称来减少读取负载,而分片在多个服务器之间分散写入负载。
Sparse vector
稀疏向量使用向量 embedding 表示单词或短语,其中大多数元素为零,只有一个非零元素表示特定单词的存在。稀疏向量模型(如 SPLADEv2)在领域外知识搜索、关键词感知和可解释性方面优于密集模型。有关更多信息,请参阅 稀疏向量。
Unstructured data
非结构化数据,包括图像、视频、音频和自然语言,是不遵循预定义模型或组织方式的信息。这种数据类型约占世界数据的 80%,可以使用各种人工智能(AI)和机器学习模型转换为向量。
VChannel
VChannel 代表逻辑通道。每个 VChannel 代表 Collection 中的一个分片。每个 Collection 将被分配一组 VChannel 用于记录数据插入、删除和更新。VChannel 在逻辑上是分离的,但在物理上共享资源。
Vector
embedding 向量是非结构化数据的特征抽象,如电子邮件、IoT 传感器数据、Instagram 照片、蛋白质结构等。从数学角度来说,embedding 向量是浮点数或二进制数的数组。现代 embedding 技术用于将非结构化数据转换为 embedding 向量。自 2.4.0 以来,Milvus 支持密集和稀疏向量。
Zilliz Cloud
Zilliz Cloud 上的完全托管 Milvus,具有更多企业功能和高度优化的性能。