Milvus 核心设计(5)--- scalar index&work mechanism

avatar
作者
猴君
阅读量:3

目录

背景

Scalar index简介

属性过滤

扫描数据段

相似性搜索

返回结果

举例说明

1. 属性过滤

2. 扫描数据段

3. 相似性搜索

实际应用中的考虑

Scalar Index 方式

Auto indexing

Inverted indexing


背景

继续Milvus的很细设计,前面主要阐述了Milvus 在 vector simalairity 上的处理策略及index 方式。今天主要讲下scalar index。应该说对于所有的 db 实现,scalar index 都是需要的,无论是否是 关系型数据库,还是是否采用 k-v 存储等模式,有的东西是触类旁通的。Milvus 在处理scalar index 时,并不是孤立处理,而是结合了 bitset 提前过滤 + vector similarity 共同应对user query 提出的挑战。下面进入正题。

Scalar index简介

向量相似性搜索过程中,Milvus 使用了属性过滤条件(expr)来扫描每个数据段(segment),并将过滤结果(bitset,一种位集合,用于高效表示哪些元素满足条件)与查询向量(data)一起应用于相似性搜索中。这种方式可以极大地提高搜索效率,因为它允许Milvus在执行耗时的相似性计算之前,先通过简单的属性过滤快速排除掉大量不满足条件的数据点。

具体来说,过程如下:

属性过滤

用户定义了一个或多个属性过滤条件(expr),这些条件用于筛选数据集中满足特定属性要求的向量。这些条件可以基于向量的元数据(如时间戳、地理位置、分类标签等)来定义。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!