索引概述

创建索引是一个组织数据的过程,是向量数据库实现快速查询百万、十亿、甚至万亿级数据集所依赖的一个巨大组成部分。

加速向量查询

相似性搜索引擎的工作原理是将输入的对象与数据库中的对象进行比较,找出与输入最相似的对象。索引是有效组织数据的过程,极大地加速了对大型数据集的查询,在相似性搜索的实现中起着重要作用。对一个大规模向量数据集创建索引后,查询可以被路由到最有可能包含与输入查询相似的向量的集群或数据子集。在实践中,这意味着要牺牲一定程度的准确性来加快对真正的大规模向量数据集的查询。

为提高查询性能,你可以为每个向量字段指定一种 索引类型。目前,一个向量字段仅支持一种索引类型。切换索引类型时,Milvus 自动删除之前的索引。

索引创建机制

create_index 方法被调用时,Milvus 会同步为这个字段的现有数据创建索引。

当插入的数据段少于 4096 行时,Milvus 不对其创建索引。

数据段建索引

Milvus 数据段存储海量数据。在建立索引时,Milvus 为每个数据段单独创建索引。

闲时建索引

众所周知,建索引是一个比较消耗计算资源和时间的工作。当查询任务和后台建索引任务并发时,Milvus 通常把计算资源优先分配给查询任务,即用户发起的任何查询命令都会打断后台正在执行的建索引任务。之后仅当用户持续 5 秒不再发起查询任务,Milvus 才会恢复执行后台建索引任务。此外,如果查询命令指定的数据段尚未建成指定索引,Milvus 会直接在段内做全量搜索。

选择索引和距离计算方式

若要为你的使用场景选择合适的索引,请参阅 如何选择索引类型

关于索引和向量距离计算方法的选择,请访问 距离计算方式

该页面是否对你有帮助?
评价成功!