選び方
- すでにPostgresを使っていてデータ量がそこそこ:pgvectorならデータベースを1つに保てます。
- 高度なフィルタリング、ハイブリッド検索、大規模:Qdrant、Weaviate、Milvusなどの専用エンジン。
- サーバーを管理したくない:Pineconeなどのホスト型サービス。月額料金がかかります。
確認すべきポイント
選択肢を分けるポイントを、重要な順に並べています。
01
フィルター付き検索の品質
実際のクエリはほぼ必ず、権限、テナントID、日付、文書の種類で絞り込まれ、フィルターがかかっても結果は関連性を保たなければなりません。ベクトル検索の後でフィルターをかけるエンジンは、10件を求めたのに3件しか返さなかったり、最も一致するものを黙って見落としたりします。Qdrantはインデックス化したペイロードのフィールドにグラフのエッジを加えるので、フィルター付きの探索でもつながりが保たれます。pgvectorには反復スキャン(0.8.0以降)か部分インデックスが必要です。フィルターなしのデモではなく、最も絞り込みの強い実際のフィルターでテストしてください。
02
ハイブリッド検索: ベクトルとキーワード
ベクトルは、名前、識別子、製品コードやエラーメッセージのような正確な用語を見落とし、キーワード検索(BM25)はそれらを捉えます。ハイブリッド検索は両方を実行してスコアを混ぜ合わせます。Weaviate、Qdrant、Milvus、LanceDB、turbopufferは1つのエンジンでこれを行い、Pineconeはスパース・デンスのインデックスか全文フィルターを提供し、pgvectorではPostgresの全文検索をSQLで自分で組み合わせます。重みづけを調整できるか、reciprocal rank fusionを使えるかを確認してください。
03
recallと遅延
近似検索は速度と引き換えに正確さを犠牲にします。recallは本当の最近傍のうち取り戻せる割合で、どんな速度でもよいのではなく、必要な応答時間でのrecallが重要です。階層型のグラフであるHNSWは高いrecallを出しますが、インデックスをRAMに置く必要があります。IVFはベクトルをクラスターに分け、最も近いクラスターを検索します。ディスクベースのインデックス(MilvusのDiskANN、WeaviateのHFresh、turbopufferとChroma CloudのSPFreshやSPANN)は、データの大半をSSDやオブジェクトストレージに置きます。量子化はベクトルを4〜32分の1に縮め、通常は正確さを取り戻す再採点の手順を伴います。ベンチマークについて。研究者のMartin Aumueller、Erik Bernhardsson、Alec Faitfullが運営するANN-Benchmarksは、小さな公開データセットでの単一クエリについて、recallと毎秒のクエリ数の関係を描いています。比べているのはデータベースではなくインデックスのアルゴリズムで、フィルタリング、書き込み、運用は無視しています。VectorDBBenchはMilvusを開発するZillizがメンテナンスしており、p99の遅延、フィルター付きやストリーミングのケース、クエリあたりの費用を加えています。同じrecallでのQPSとp99を比べ、ベンダーによる自社製品のベンチマークは再現すべき主張として扱いましょう。
04
ワークロードの規模
選ぶ前に仕事の規模を見積もりましょう。想定されるベクトル数、次元数、同時クエリ数、データの変更頻度です。ベクトル数×次元数×バイト数が、インメモリのインデックスに必要な素のメモリ量になります。Postgresのホスティングを販売するEncoreは、約500万ベクトル未満ではpgvectorはPineconeと同等で、それを超えると慎重なチューニングが必要だとしています。Chromaはプロトタイプから数千万まで、LanceDBのFAQはオープンソースのライブラリが1ノードで数百万のベクトルを扱えるとしており、Milvusとturbopufferは数十億向けに作られています。
05
更新と削除
挿入、編集、削除がどれだけ早く検索に反映されるかを確認してください。新しいデータをすぐに取り込むインデックスもあれば、書き込みをバッファしたり再構築が必要だったりするものもあります。turbopufferの書き込みはオブジェクトストレージに送られ、512 KBのupsertでp90が248 msです。削除はコンプライアンスにとって重要です。ユーザーが文書を取り下げたら、すぐに結果に出なくならなければならず、テナントごとのインデックスなら顧客全体の削除も簡単です。
06
セキュリティと分離
アクセス制御、保存時と通信時の暗号化、そして確実に機能するテナントの分離を探しましょう。権限をメタデータのフィルターで強制するなら、そのフィルターがすべてのクエリで信頼できなければならず、これもフィルター付きのrecallをテストする理由の1つです。turbopufferは無制限の名前空間とエンタープライズ向けの顧客管理キーを提供し、Qdrantはフィールドをテナントのキーとして指定でき、Weaviateにはネイティブのマルチテナンシーがあります(ただし名前空間の機能は今は有料ライセンスが必要です)。pgvectorではテナントごとにパーティション分けするか、行レベルのセキュリティを使います。
07
運用
バックアップ、復旧、監視、スケーリングは、ライセンスより費用がかかることがよくあります。すでにPostgresがあれば、pgvectorで新たに運用するものはありません。Qdrantは単一のバイナリで提供され、大規模なMilvusにはKubernetesとプラットフォームチームが必要です。ChromaとLanceDBはプロセス内で動きます。Pineconeとturbopufferはマネージド専用で、エンタープライズの購入者向けに自社クラウドへの持ち込みがあります。ライセンスが撤退の道を決めます。Apache 2.0(Qdrant、Milvus、Chroma、LanceDB)とPostgreSQLライセンス(pgvector)なら自由にセルフホストでき、Weaviateは2026年9月からオープンコアで、プロプライエタリのサービスから離れるには書き出しと再インデックス化が必要です。
08
総費用
インデックス、メタデータの保存、クエリ、更新を数え、そもそも別のデータベースが必要かも考えましょう。マネージドサービスの課金単位はさまざまです。Pineconeは読み取りユニット、書き込みユニット、保存GB、Weaviate Cloudは保存したベクトルの次元数、turbopufferは月の最低額を超えた利用量、Chroma Cloudは書き込み、保存、クエリしたデータ量で課金します。読み取り中心のチャットボットと書き込み中心のインデックス化パイプラインでは、同じベンダーの順位が逆になりうるので、各社の計算ツールで自分の量をモデル化し、自分で運用する場合とも比べてください。
データの種類に合ったアプローチ
コンテンツの種類によって適したモデルは異なります。多くのシステムは複数のモデルを使い、データの種類で振り分けています。
| データ | アプローチ | 最初に試すもの |
|---|---|---|
| すでにPostgresを使っていて、約1,000万ベクトル未満 | 運用中のデータベースにベクトルを加えましょう。フィルターはSQLで、新たに運用するものはありません。 | pgvector |
| ユーザーごとの権限があるマルチテナントのSaaS | 強力なフィルター付き検索か、テナントごとに1つの名前空間を選び、権限のフィルターでrecallをテストしてください。 | Qdrant, turbopuffer, Weaviate |
| キーワードの必要性が高い:名前、コード、識別子 | BM25とベクトルのハイブリッド検索を組み込んだエンジンを選びましょう。 | Weaviate, Qdrant, Milvus |
| 数億から数十億のベクトル | その規模向けに作られた分散型またはオブジェクトストレージ型のエンジンを使いましょう。 | Milvus, turbopuffer |
| 運用チームがなく、トラフィックが予測できない | フルマネージドのサービスを使い、プランの上限で支出に上限を設けましょう。 | Pinecone, turbopuffer |
| オンデバイス、ノートブック、ローカルのエージェント | サーバーなしで、プロセス内で組み込みのライブラリを動かしましょう。 | Chroma, LanceDB |
| データレイク内のマルチモーダルなデータ | 埋め込みを元のファイルの横に置き、その場で検索しましょう。 | LanceDB, Milvus |
自分のデータで試す方法
- 代表的な質問を50〜100件作り、それぞれの正しい段落に印を付けます。
- 難しいケースを含めましょう。略語、正確なIDやコード、あいまいな質問、権限で制限された文書などです。
- Recall@kを測ります。正しい段落が上位k件の結果にどれだけの頻度で現れるかです。
- NDCG@10やMRRなどの順位の品質を測り、正しい段落がただ含まれるだけでなく上位にあることを確かめます。
- 実際のフィルターをオンにして、現実的な同時実行数のもとでp95の遅延を測ります。
- 想定される量でのインデックス化、保存、クエリ、更新の総費用を加えます。
- 最終的な回答の品質を確認し、データベース単体ではなく、パイプライン全体(埋め込みモデル、データベース、リランカー、LLM)を一緒に評価してください。
選択肢の違い
混同しやすい2つの選択があります。埋め込みモデルは何を似ているとみなすかを決め、ベクトルデータベースはその埋め込みをどれだけ効率よく保存し、絞り込み、取り出すかを決めます。別々に評価し、そのうえで自分のデータで一緒にテストしましょう。新しいシステムを加える前に、すでに運用しているデータベ ースも確認してください。そのベクトル検索が検索と絞り込みの要件を満たすなら、もう1つは要らないかもしれません。
ベクトルデータベースは5つの系統に分かれます。Postgresの拡張(pgvector)は埋め込みを普通のテーブルに入れるので、フィルターはSQLで、データは同じトランザクションとバックアップの中にとどまり、新たに運用するものはありません。数百万のベクトルなら既定の選択です。専用エンジン(Qdrant、Weaviate、Milvus)は検索専用に作られた別のサーバーで、高度なフィルタリング、キーワードとベクトルのハイブリッド検索、量子化、より大きな規模を扱えますが、運用するシステムが1つ増えます。Qdrantは最も運用しやすく、Weaviateはハイブリッド検索と組み込みの埋め込みで先行し、Milvusは数十億のベクトルを多くのマシンに分散させるよう設計されています。
組み込みのライブラリ(Chroma、LanceDB)は、SQLiteのようにサーバーなしでアプリケーション内で動きます。プロトタイプ、ノートブック、ローカルアプリ、エージェントに最適ですが、多数の同時ユーザーには弱くなります。フルマネージドのサービス(Pinecone、turbopuffer)は運用を完全になくし、利用量で課金します。Pineconeはインデックスを常にホットに保ち、turbopufferはデータをオブジェクトストレージに置くので、巨大な規模では安いものの、コールドなクエリでは遅くなります。ベクトルに対応した検索エンジン(Elasticsearch、OpenSearch)やNeo4jのようなグラフデータベースもベクトルを保存でき、キーワード検索や関係のためにすでに運用しているなら理にかなっていますが、ここでは扱いません。
8 個のツールを比較
当サイトの評価順です。各レビューで出典、料金、評価の詳細を確認できます。
| ツール | 評価 | 当サイトの評価 | 向いている用途 | 料金 |
|---|---|---|---|---|
| Qdrantリポジトリ | 4.7/5 | 適切に機能するフィルター付きベクトル検索により、Qdrantは本番環境のRAGにおいて最も有力なオープンソースデータベースとなっています。ただし、初期状態で開放されているサーバーを確実に保護する必要があります。 | 高速なフィルター付きベクトルクエリを必要とする、本番環境のRAGや検索を実行するチームに適しています。 | Apache 2.0ライセンスに基づく無料でオープンソースのソフトウェアです。Qdrant Cloudには無料の1 GBクラスターがあり、それ以降は従量課金制となります。Premium、Hybrid、Private Cloudは営業担当者による見積もりです。 |
| pgvectorリポジトリ | 4.6/5 | すでに Postgres を使っている多くのチームにとって、専用のベクトルデータベースは余分なインフラであり、pgvector がそれを不要にします。 | すでに Postgres を使っていて、数百万程度のベクトルで RAG やセマンティック検索を構築するチームに向いています。 | PostgreSQL License のもとで無料のオープンソースです。コストは、すでに運用している Postgres インスタンス、またはそれより大きなインスタンスの費用だけです。 |
| Milvusリポジトリ | 4.4/5 | 数十億のベクトル向けに作られ、その代価は運用の手間です。数億件を下回るなら、多くのチームにとっては必要以上のデータベースです。 | 数億から数十億のベクトルでベクトル検索を運用するプラットフォームチーム。 | Apache 2.0 のもとで無料のオープンソースです。マネージドサービスは Zilliz Cloud で、無料枠(5 GB、コレクション5つ)、Dedicated は768次元のベクトル100万件あたり月 $63、$16、$5 から(performance、capacity、tiered)、Enterprise は月 $197 から、Business Critical は見積もりです。 |
| Pineconeツール | 4.2/5 | Pinecone はベクトル検索の運用作業をほぼすべてなくし、その対価を読み取りのたびに請求します。そのため、忙しい本番のインデックスよりも小さなチームにはるかに向いています。 | データベースの運用担当者がおらず、マネージドのベクトル検索を求め、利用量に応じた料金を受け入れられるチームに向いています。 | 無料のStarter(2 GB、月1M読み取りユニット、AWS us-east-1のみ)。Builderは月$20の定額で、厳格な上限があります。Standardは月最低$50で、それに加えてストレージは月1 GBあたり$0.33、1M読み取りユニットあたり$16〜$18、1M書き込みユニットあたり$4〜$4.50です。Enterpriseは月最低$500です。 |
| Weaviateリポジトリ | 4.2/5 | キーワードとベクトルのハイブリッド検索は依然としてWeaviateの最大の強みですが、最新の運用機能はライセンスキーの背後に配置されるようになりました。 | 正確なキーワードと意味的類似性の両方が重要となる検索やRAGを構築するチームに適しています。 | コアはBSD-3-Clauseです。一部のエンタープライズ機能には有料のライセンスキーが必要です。Weaviate Cloudには、Free(100,000オブジェクト)、月額最低45ドルのFlex従量課金制、前払い契約で月額400ドルからのPremiumがあります。 |
| turbopufferツール | 4.2/5 | 製品に何百万もの個別の、ほとんど使われないインデックスがあるなら、turbopufferは最有力のベクトルデータベースです。ただし、コールドなインデックスへの最初の検索に約1秒かかることを許容できる場合に限ります。 | 多数の個別インデックスや数十億のベクトルを持つマルチテナントのAI製品を作り、サーバーを運用したくないチームに向いています。 | Launchは月$16の最低利用額、Scaleは月$256の最低利用額(SSO、HIPAA BAA)、Enterpriseは月$4,096からで利用料に35%の上乗せ(BYOC、シングルテナント、99.95% SLA)です。ストレージは最大$0.33/GB、書き込みは最大$2/GB、クエリは検索対象1PBあたり最大$1です。無料枠はありません。 |
| Chromaリポジトリ | 4.1/5 | 組み込みが速く、読み取り中心の RAG ならホスティングも安価ですが、2026年5月以降タグ付きのリリースはありません。 | RAG のプロトタイプを作る開発者や、小〜中規模のベクトル検索を運用する開発者に向いています。 | Apache 2.0 の無料オープンソースです。Chroma Cloud は、Starter が $0 と利用料で $5 のクレジット付き、Team が月 $250 と利用料、Enterprise は個別見積もりです。書き込みは $2.50/GiB、保存は $0.33/GiB・月です。 |
| LanceDBリポジトリ | 4.0/5 | 埋め込みが画像、動画、学習データと並んで置かれている場合、LanceDB は別のデータベースを丸ごと不要にします。ただし多数のユーザーが頻繁に検索する用途は、無料のライブラリが想定するものではありません。 | マルチモーダルなデータや学習データを扱い、サーバーを動かさずにベクトル検索を使いたいチーム。 | Apache 2.0 の無料のオープンソースです。LanceDB Enterprise は年間コミットメントで販売され、AWS Marketplace には 12 か月 $60,000 のコミットメントが掲載されています。プライベートオファーは見積もりによります。 |
仕様の比較
このステップで重要な仕様です。2026年10月23日に確認しました。導入前に提供元のサイトで確認してください。
| ツール | 種類 | ライセンス | インデックスの種類 | ハイブリッド検索 | ホスティングの選択肢 | 最適な規模 |
|---|---|---|---|---|---|---|
| Qdrant | 専用エンジン(Rust) | Apache 2.0 | HNSW, sparse inverted; TurboQuant/BQ/PQ | あり、1回のクエリでスパースとデンス | セルフホスト、Qdrant Cloud、Edge | 数百万から数億 |
| pgvector | Postgresの拡張 | PostgreSQLライセンス | HNSW, IVFFlat; half, binary, sparse | SQLでPostgresの全文検索を経由 | 任意のPostgres、ほとんどのマネージドサービス | 数百万のベクトル(Encoreによれば約5M) |
| Milvus | 分散エンジン(Go/C++) | Apache 2.0 | HNSW, IVF, DiskANN, SCANN, flat | あり、BM25、スパース、デンス | セルフホスト(Kubernetes)、Zilliz Cloud | 数億から数十億 |
| Pinecone | フルマネージドのサービス | プロプライエタリ | 非公開 | スパース・デンスまたは全文フィルター | サーバーレス。EnterpriseでBYOC | 任意。読み取りとともに費用が増える |
| Weaviate | 専用エンジン(Go) | コアはBSD-3と商用機能 | HNSW, flat, dynamic, HFresh | あり、BM25とベクトル、調整可能 | セルフホスト、Weaviate Cloud | 非公開 |
| turbopuffer | マネージド、オブジェクトストレージベース | プロプライエタリ | SPFreshとRaBitQのバイナリ量子化 | あり、BM25とベクトル | マルチテナント、シングルテナント、BYOC | 数十億のベクトル、多数のテナント |
| Chroma | 組み込みのライブラリまたはサーバー | Apache 2.0 | HNSW(単一ノード)、SPANN(Cloud) | ベクトルと並ぶ全文検索 | プロセス内、サーバー、Chroma Cloud | プロトタイプから数千万 |
| LanceDB | 組み込みのライブラリ(Lanceファイル) | Apache 2.0 | IVF (PQ/SQ/RQ), IVF_HNSW | BM25の全文検索とベクトル | ディスクまたはS3上でプロセス内。Enterprise | ローカルアプリ。1ノードあたり数百万のベクトル |
エージェントに接続する
Claude、ChatGPT、Cursor などのアシスタントがこれらのツールを直接使えるようにする MCP サーバーです。
このステージが使われる場面
- 文書とのチャット:まず Qdrant から始めます。
- カスタマーサポートエージェント:まず pgvector から始めます。
- コーディングエージェント:まず LanceDB から始めます。
- リサーチとナレッジグラフ:まず Weaviate から始めます。
- 長期記憶を持つアシスタント:まず Qdrant から始めます。
- 画像生成パイプライン:まず Qdrant から始めます。
- 動画制作:まず LanceDB から始めます。
- 音声エージェント:まず pgvector から始めます。
- プライベートなオンデバイスAI:まず LanceDB, Chroma から始めます。
このガイドの出典
- ANN-Benchmarks
- VectorDBBench (Zilliz) on GitHub
- VectorDBBench leaderboard
- Qdrant docs: indexing
- Qdrant docs: quantization
- Weaviate docs: vector indexes
- Milvus docs: index types
- Milvus docs: DiskANN
- Chroma docs: collection configuration
- Chroma docs: architecture
- LanceDB docs: indexing
- Pinecone docs: hybrid search
- pgvector README
- turbopuffer: ANN v3
- LanceDB OSS FAQ
- pgvector vs Pinecone (Encore)