Milvus と Qdrant の比較

どちらもベクトルDB / ストレージに分類しています。数値はGitHub APIから取得したもので、評価は本サイトによるものです。

基本情報の比較

基本情報の比較MilvusQdrant
ライセンスApache-2.0Apache-2.0
言語Go, C++Rust
提供形態セルフホスト / マネージドクラウドセルフホスト / ローカル実行 / マネージドクラウド
成熟度安定安定
スター45.6k34k
直近7日間のスター増加数+1 ★+1 ★
フォーク4.2k2.6k
オープンIssue1.3k699
最終コミット2026年8月15日2026年8月15日
開発状況活発活発

それぞれの位置づけ

Milvus

ストレージと計算を分離し、インデックス構築とクエリを独立にスケールさせる設計です。数十億ベクトル規模で必要になるアーキテクチャがここにあります。その能力は運用負荷と引き換えであり、数百万ベクトル未満の規模ではより単純な選択肢のほうが適しています。

詳細を見る →

Qdrant

Rust製で、メタデータによる絞り込みを検索後ではなく検索中に適用する設計です。大規模なコレクションのうち狭い範囲だけをエージェントが検索する場面で、結果の正しさを保てるかどうかがこの違いに現れます。ローカル開発用の単一コンテナから分散クラスタまで、同じ構成で拡張できます。

詳細を見る →

できること

Milvus

  • サーバーを立てずに試すpymilvus[milvus-lite]を入れてMilvusClientにローカルファイル名を渡せば単体で動き、uriとtokenを差し替えるだけで自ホストのクラスタやZilliz Cloudへ接続先を移せます。
  • 全文検索とベクトル検索を併用同一コレクションに疎ベクトルと密ベクトルを格納でき、BM25による全文検索やSPLADE、BGE-M3などの学習済み疎埋め込みの結果をrerank関数で統合できます。
  • 用途に合わせてインデックスを選ぶHNSW、IVF、FLAT、SCANN、DiskANNに加え、IVFPQなどの量子化やmmap、NVIDIA CAGRAによるGPUインデックスまで選択できます。
  • 読み取りと書き込みを別々に増強計算とストレージが分離されているため、読み取り中心の負荷にはquery node、書き込み中心の負荷にはdata nodeを個別に追加でき、レプリカで耐障害性も高められます。
  • 1クラスタでテナントを分離database、collection、partition、partition keyの各粒度で分離を設定でき、RBACとTLS、ホットデータをメモリやSSDに置くホット/コールド階層を組み合わせて運用します。

Qdrant

  • 検索中に効くフィルタペイロード条件を検索後の絞り込みではなく検索処理そのものの中で適用します。条件はキーワード一致、全文検索、数値範囲、地理情報などをmust・should・must_notで組み合わせて記述します。
  • 1コンテナから始めるdocker run -p 6333:6333 qdrant/qdrantだけでローカル環境が整います。ただしこの構成は認証がなく全インターフェースで待ち受けるため、READMEも本番投入前に設定を見直すよう促しています。規模が増えたらシャーディングとレプリケーションで広げられ、コレクションの変更も無停止で行えます。
  • 密ベクトルと疎ベクトルの併用意味的な近さを担う密ベクトルとキーワードに強い疎ベクトル、ColBERTのような遅延相互作用モデル向けのマルチベクトルを1つのクエリで扱い、結果はRRFやDBSFで統合します。
  • 6言語の公式クライアントPython向けのqdrant-clientとJavaScript/TypeScript向けの@qdrant/js-client-restに加え、Go、Rust、.NET/C#、Javaの公式クライアントがあります。接続はOpenAPI 3.0仕様のREST APIか、高速な検索向けのgRPCインターフェースを選べます。
  • 量子化でメモリを削る組み込みの量子化でRAM使用量を最大97%削減でき、検索速度と精度の釣り合いを調整できます。常時メモリに置く必要のないベクトルはディスク保存へ回せます。

関連する比較