milvus-io/milvus-lite

A lightweight version of Milvus

Milvus Lite – 快速概览

它是什么:Milvus Lite 是 Milvus 向量数据库的纯 Python、仅限本地使用的版本。它让您能够存储向量、标量字段及文本,并运行相似度搜索、过滤和混合(向量+文本)查询,而无需完整的 Milvus 服务器或任何 C++ 组件。

为什么重要:开发人员通常需要一个轻量级、易于安装的数据库来用于笔记本、单元测试或小型原型。Milvus Lite 模拟了 Milvus 的 pymilvus API,因此针对它编写的代码,未来只需极少的变更即可切换至生产环境的 Milvus 部署(单机、分布式或 Zilliz Cloud)。

主要功能:

  • 本地存储 – 数据存储在单个 .db 文件(或目录)中,使用具备 WAL、memtables 及 Parquet 分段的 LSM-tree 风格引擎。
  • 向量搜索 – 通过 FAISS 索引(HNSW, IVF 等)进行稠密向量搜索,以及通过精确内积或 BM25 评分进行稀疏向量搜索。
  • 全文与混合搜索 – 内置 BM25 分析器,可选用 Jieba 进行中文处理,并具备结合向量与文本评分的能力。
  • 丰富的 Schema – 支持多种标量类型、动态字段、JSON、数组、几何(WKT)以及如 OpenAI 文本嵌入等函数。
  • gRPC 适配器 – 运行本地与 Milvus 兼容的服务器,让多个 Python 进程能共享同一个数据库。
  • 纯 Python – 所有核心逻辑皆以 Python 编写,提供清晰的堆栈跟踪与易于检查的特性。

典型用法:

from pymilvus import MilvusClient
client = MilvusClient("./demo.db")
client.create_collection("docs", dimension=4)
client.insert("docs", [{"id":1, "vector":[0.1,0.2,0.3,0.4], "text":"python tutorial"}])
results = client.search("docs", data=[[0.1,0.2,0.3,0.4]], limit=2)

您也可以启动服务器(milvus-lite server)并透过 uri="http://127.0.0.1:19530" 连接,或直接使用嵌入式引擎 API(from milvus_lite import MilvusLite)。

限制:单进程写入、无身份验证、无分布式扩展、不支持二进制/float16 向量,且缺少部分进阶 Milvus 功能(例如乘积量化索引、空间索引)。


仓库摘要(来自 README)

方面 详细信息
许可证 Apache 2.0
语言 Python 3.10+
安装 pip install -U milvus-lite (或通过 pymilvus[milvus-lite])
核心依赖 pyarrow, numpy, faiss-cpu, grpcio
主要组件 Adapter (gRPC), Engine (存储, 搜索, 索引, 分析器, 函数, schema)
支持数据类型 稠密与稀疏向量, BOOL, 整数, FLOAT, DOUBLE, VARCHAR, JSON, ARRAY, GEOMETRY, TIMESTAMPTZ
搜索指标 COSINE, L2, IP, BM25
索引 HNSW, IVF, FLAT, BRUTE_FORCE, 稀疏倒排, 标量倒排
功能 CRUD, 分区, 别名, 快照, 混合搜索, 重排序, 全文搜索, 几何过滤
运行模式 本地 .db 文件, 嵌入式引擎 API, 本地 gRPC 服务器
文档与测试 docs/ 中的设计文档,跨操作系统与 Python 3.10-3.13 的广泛 CI
典型用户 笔记本开发者, CI 测试, 小型 AI 应用, 需要 Milvus 兼容 API 但无需完整服务器者

谁适合使用?

  • 数据科学家:在 Jupyter 中构建概念验证的相似度搜索流水线。
  • 工程师:为最终将与真实 Milvus 集群对接的代码编写单元或集成测试。
  • 学生:学习向量数据库,并希望在本地进行实验而无需 Docker 或繁重的安装。

快速入门检查清单

  1. pip install "pymilvus[milvus-lite]"
  2. 使用 .db 文件路径创建客户端。
  3. 定义集合 Schema(或让 Milvus 自动创建)。
  4. 插入向量 / 文本 / 标量字段。
  5. 根据需要运行 search, query 或 delete。
  6. 若需多进程工作,请启动 milvus-lite server --data-dir ./data --port 19530 并将客户端指向该 URI。

以上所有信息均直接取自项目的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目