pymilvus创建向量索引

索引简介

索引的作用是加速大型数据集上的查询。

目前,向量字段仅支持一种索引类型,即只能创建一个索引。

milvus支持的向量索引类型大部分使用近似最近邻搜索算法(ANNS,approximate nearest neighbors search) 。ANNS 的核心思想不再局限于返回最准确的结果,而是仅搜索目标的邻居。 ANNS 通过在可接受的范围内牺牲准确性来提高检索效率。

索引分类

milvus支持内存索引、磁盘索引。

根据实现方法,ANNS向量索引可以分为4类:

  • 基于树的索引
  • 基于图的索引
  • 基于哈希的索引
  • 基于量化的索引

根据数据类型,支持2种类型的索引:

  • floating-point embeddings

    SCANN、IVF_FLAT、IVF_PQ、IVF_SQ8、FLAT、HNSW、ANNOY、AUTOINDEX、DISKANN

  • binary embeddings

    BIN_FLAT、BIN_IVF_FLAT

创建索引

使用attu创建hnsw索引

在这里插入图片描述

在这里插入图片描述

索引类型选择HNSW。

度量类型有3种:

  • L2(欧式距离)

    本质上,欧几里得距离测量连接 2 个点的线段的长度。

  • IP(内积,点积)

    如果您使用 IP 来计算相似度,则必须对其进行标准化。归一化后,内积等于余弦相似度。

  • COSINE(余弦相似度)

    余弦相似度使用两组向量之间的角度的余弦来衡量它们的相似程度。

使用pymilvus创建索引

在向量字段创建一个hnsw类型的索引:

from pymilvus import (
    connections,
    Collection,
)

collection_name = "hello_milvus"
host = "192.168.230.71"
port = 19530
username = ""
password = ""

print("start connecting to Milvus")
connections.connect("default", host=host, port=port,user=username,password=password)

coll = Collection(collection_name, consistency_level="Bounded",shards_num=1)

print("Start creating index")
index_params = {
    "index_type": "HNSW",
    "metric_type": "L2",
    "params": {
        "M": 16,
        "efConstruction": 60
    }
}

coll.create_index(
  field_name="embeddings",
  index_params=index_params,
  index_name="idx_em"
)

print("done")
  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shulu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值