Milvus向量数据库集合操作初尝试

目录

1.集合(Collection)

2. 字段(Field)

3. 索引(Index)

4. 分区(Partition)

5. 实体(Entity)

6.代码示例 

6.1集合创建

6.2向量插入

6.3向量查询

6.4向量删除


1.集合(Collection)

集合是 Milvus 中存储数据的最基本单元。它类似于数据库中的一个表(table)。集合定义了数据的整体结构,包括数据类型、字段、索引等。

  • 作用:集合是你数据的容器,用来存储实体(Entity)。
  • 定义:一个集合必须定义其结构(schema),包括字段(fields)和字段的数据类型(如整数、浮点向量、字符串等) 

2. 字段(Field)

字段是集合中存储数据的最小单位。每个集合都有多个字段,每个字段代表集合中存储的一类数据。字段定义了数据的结构和类型。

  • 作用:字段用于存储实体的数据。
  • 定义:每个字段都有一个名称(name)和数据类型(data type)。Milvus 支持多种字段类型,包括:
    • INT64FLOAT 等基础数据类型。
    • STRING 类型的文本数据。
    • FLOAT_VECTORINT_VECTOR 等向量类型数据,用于存储向量数据(如图像、文本的嵌入向量)。向量字段(如 FLOAT_VECTOR 类型)是 Milvus 的关键特性,用于存储高维度的向量数据。

3. 索引(Index)

索引是用于加速向量检索的结构。在 Milvus 中,索引是针对集合中的向量字段建立的,用于提高查询速度。没有索引的情况下,检索将会是线性扫描,效率较低。

  • 作用:加速向量的相似性搜索(如 KNN 搜索)。
  • 类型:Milvus 支持多种向量索引类型,常见的有:
    • IVF(Inverted File):适用于大规模数据集。
    • HNSW(Hierarchical Navigable Small World):适用于高效的近似最近邻搜索。
    • Flat:无索引,进行暴力搜索。适合于在小型百万级数据集上寻求完全准确和精确的搜索结果的场景
    • IVF_FLAT:IVF_FLAT 是基于量化的索引,最适合于在准确性和查询速度之间寻求理想平衡的场景。还有一个 GPU 版本 GPU_IVF_FLAT
    • IVF_SQ8:IVF_SQ8 是一种基于量化的索引,最适合于在磁盘、CPU 和 GPU 内存消耗非常有限的场景。
    • IVF_PQ:IVF_PQ 是一种基于量化的索引,最适合于在牺牲准确性的情况下追求高查询速度的场景。还有一个 GPU 版本 GPU_IVF_PQ

索引与集合的关系:

  • 索引是建立在集合中的向量字段上的。每个向量字段可以有一个或多个索引。
  • 索引可以显著提高查询性能,特别是在向量检索时。

你可能感兴趣的:(milvus)