当前位置: 首页 > news >正文

3.milvus索引-HNSW

索引作用

加速大型数据集上的查询。

向量字段,仅只能创建一个索引。

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

比方,有一百条数据,其中有90条数据是满足条件的,使用ANNS可能只会返回89条数据。如果想准确返回90条数据,就需要采用暴力搜索。

milvus索引分类

内存索引,因为是在内存中所以加载速度更快。

磁盘索引

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

1.基于树的索引,比如mysql中的索引是基于B+树。

2.基于图的索引

3.基于哈希的索引

4.基于量化的索引

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

  • floating-point embeddings 浮点类型,常用的索引

SCANN、IVF_FLAT、IVF_PQ、IVF_SQ8、FLAT、HNSW(效率比较高的索引算法)、ANNOY、AUTOINDEX、DISKANN

  • binary embeddings

BIN_FLAT、BIN_IVF_FLAT

注意:删掉索引前,需要现将Collection从内存中release卸载释放掉。

使用attu图形化工具,创建一个HNSW类型的索引

使用代码创建一个HNSW类型的索引

from pymilvus import (
    connections,
    Collection,
)

collection_name = "first_milvus"
host = "192.168.171.130"
port = 19530
username = ""
password = ""

connections.connect("default", host=host, port=port, user=username, password=password)
coll = Collection(collection_name, consistency_level="Bounded", shards_num=1)

from pymilvus import Collection

collection = Collection('first_milvus')
index_params = {
    "index_type": "HNSW",
    "metric_type": "L2",
    "params": {
        "M": 16,
        "efConstruction": 60
    }
}
collection.create_index(
  field_name="embeddings",
  index_params=index_params,
  index_name="idx_em"
)
print("done")

相关文章:

  • SpringBoot集成Flyway
  • java八股文之并发编程
  • JSON Web Token (JWT) 完整指南
  • 决策树调参技巧
  • 数据库操作练习
  • 计算机网络——物理层设备
  • 深度剖析HTTP协议—GET/PUT请求方法的使用-构造请求的方法
  • Unity-AI-Deepseek生成的生成模型代码
  • 内存取证之windows-Volatility 3
  • SQL Optimization
  • uboot 编译过程
  • 蓝桥杯贪心
  • js逆向之断点调试和python补环境
  • Playwright + MCP:用AI对话重新定义浏览器自动化,效率提升300%!
  • [c语言日寄]数据输出
  • 【FPGA开发】Cordic原理推导、Xilinx PG105手册解读
  • 【AI测试必学】DeepSeek API 快速入门:获取 API Key 与调用 API 步骤详解
  • 一文读懂Python之json模块(33)
  • ABAP Core Data Services (SAP PRESS) (First Edition)
  • 蓝桥杯11届 蛇形填数
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布
  • 一个多月来上海交大接连“牵手”三区,在这些方面进行区校合作
  • 从《让·桑特伊》到《追忆》,假故事的胜利
  • 上海145家博物馆、73家美术馆将减免费开放
  • 我的科学观|梅彦昌:科技创新关键在于能否跑得快,而不是有没有钱
  • 国务院关税税则委员会公布公告调整对原产于美国的进口商品加征关税措施