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や重いインストールなしで、ローカルでベクトルデータベースを実験・学習したい方。

クイックスタートチェックリスト

  1. pip install "pymilvus[milvus-lite]"
  2. .db ファイルへのパスを指定してクライアントを作成。
  3. コレクションスキーマを定義(またはMilvusに自動作成させる)。
  4. ベクトル / テキスト / スカラーフィールドを挿入。
  5. 必要に応じて search, query, delete を実行。
  6. マルチプロセスで作業する場合は、milvus-lite server --data-dir ./data --port 19530 を起動し、クライアントをそのURIに向ける。

上記のすべての情報はプロジェクトのREADMEから直接引用したものであり、外部の仮定は追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト