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)に切り替えることができます。
主な機能:
- ローカルストレージ – WAL、memtables、Parquetセグメントを備えたLSMツリースタイルのエンジンを使用し、単一の
.dbファイル(またはディレクトリ)にデータを保存します。 - ベクトル検索 – FAISSインデックス(HNSW, IVFなど)による高密度ベクトル検索、および正確な内積またはBM25スコアリングによる疎ベクトル検索。
- 全文・ハイブリッド検索 – 内蔵のBM25アナライザー、中国語用のオプションのJieba、およびベクトルとテキストのスコアを組み合わせる機能。
- 豊富なスキーマ – 多くのスカラー型、動的フィールド、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 (ストレージ, 検索, インデックス, アナライザー, 関数, スキーマ) |
| サポートデータ型 | 高密度・疎ベクトル, BOOL, 整数, FLOAT, DOUBLE, VARCHAR, JSON, ARRAY, GEOMETRY, TIMESTAMPTZ |
| 検索メトリクス | COSINE, L2, IP, BM25 |
| インデックス | HNSW, IVF, FLAT, BRUTE_FORCE, 疎転置, スカラー転置 |
| 機能 | CRUD, パーティション, エイリアス, スナップショット, ハイブリッド検索, リランキング, 全文検索, ジオメトリフィルタ |
| 実行モード | ローカル .db ファイル, 組み込みエンジンAPI, ローカルgRPCサーバー |
| ドキュメント・テスト | docs/ 内の設計ドキュメント、OSおよびPython 3.10-3.13にわたる広範なCI |
| 典型的なユーザー | ノートブック開発者, CIテスト, 小規模AIアプリ, フルサーバーなしでMilvus互換APIが必要な方 |
誰に役立つか?
- データサイエンティスト: Jupyterで概念実証(PoC)の類似検索パイプラインを構築する方。
- エンジニア: 最終的に本物のMilvusクラスターと通信するコードのユニットテストや統合テストを書く方。
- 学生: Dockerや重いインストールなしで、ローカルでベクトルデータベースを実験・学習したい方。
クイックスタートチェックリスト
pip install "pymilvus[milvus-lite]".dbファイルへのパスを指定してクライアントを作成。- コレクションスキーマを定義(またはMilvusに自動作成させる)。
- ベクトル / テキスト / スカラーフィールドを挿入。
- 必要に応じて
search,query,deleteを実行。 - マルチプロセスで作業する場合は、
milvus-lite server --data-dir ./data --port 19530を起動し、クライアントをそのURIに向ける。
上記のすべての情報はプロジェクトのREADMEから直接引用したものであり、外部の仮定は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト