跳转至

Milvus介绍

什么是milvus向量数据库?

鸢属 Milvus向量数据库是一个为向量查询与检索而设计的云原生数据库

官网介绍: https://milvus.io/docs/zh/overview.md

关键词:非结构化数据Embeddings向量向量相似性搜索

非结构化数据(如文本、图像和音频)格式各异,蕴含丰富的潜在语义,因此分析起来极具挑战性。为了处理这种复杂性,Embeddings 被用来将非结构化数据转换成能够捕捉其基本特征的数字向量。然后将这些向量存储在向量数据库中,从而实现快速、可扩展的搜索和分析。

Milvus 提供强大的数据建模功能,能够将非结构化或多模式数据组织成结构化的 Collections。它支持多种数据类型,适用于不同的属性模型,包括常见的数字和字符类型、各种向量类型、数组、集合和 JSON,节省了维护多个数据库系统的精力

Milvus 支持的搜索类型

Milvus 支持各种类型的搜索功能,以满足不同用例的需求:

  • ANN 搜索:查找最接近查询向量的前 K 个向量。
  • 过滤搜索:在指定的过滤条件下执行 ANN 搜索。
  • 范围搜索:查找查询向量指定半径范围内的向量。
  • 混合搜索:基于多个向量场进行 ANN 搜索。
  • 全文搜索:基于 BM25 的全文搜索。
  • Rerankers:根据附加标准或辅助算法调整搜索结果顺序,完善初始 ANN 搜索结果。
  • 获取:根据主键检索数据。
  • 查询:使用特定表达式检索数据。

支持的index类型

Milvus 支持的大多数向量索引类型都使用近似近邻检索(ANNS)算法 根据实现方法,ANNS 向量索引可分为四种类型:基于树、基于图、基于哈希和基于量化

  • HNSW: 分层导航小世界图
  • FLAT: 暴力搜索
  • IVF_FLAT: 倒排文件+FLAT
  • IVF_SQ8: 倒排文件+标量量化
  • IVF_PQ: 倒排文件+乘积量化
  • SCANN: 可扩展近邻
  • DisKANN: 磁盘索引

具体索引查阅官网比较全面

部署方式

Milvus 提供三种部署模式,涵盖各种数据规模--从 Jupyter Notebooks 中的本地原型到管理数百亿向量的大规模 Kubernetes 集群:

  • Milvus Lite 是一个 Python 库,可以轻松集成到应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter Notebooks 中进行快速原型开发,或在资源有限的边缘设备上运行
  • Milvus Standalone 是单机服务器部署,所有组件都捆绑在一个 Docker 镜像中,方便部署
  • Milvus Distributed 可部署在 Kubernetes 集群上,采用云原生架构,专为十亿规模甚至更大的场景而设计。该架构可确保关键组件的冗余

总结

Q: 向量数据库milvus解决了什么问题?

A: 向量的存储、检索、管理

Q: 不能解决什么问题?

A: 不能解决embedding的问题,即将非结构化数据(如文本、图像、音频等)转化为向量的功能