AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

MongoDB ベクトル検索 のアーキテクチャ

MongoDB Vector Search は、MongoDB データベース配置(mongod)と一緒に mongot プロセスを配置することで、Kubernetes 環境で AI を活用したセマンティック検索機能を有効にします。mongot プロセスは、ベクトル インデックスをマネージし、データベースからデータを取得し、$vectorSearch クエリを処理します。これにより、高度な検索機能を提供しながら、別々のシステムを同期させる必要がなくなります。

ベクトル検索を配置するには、Kubernetes 演算子が検出して mongot ポッドを配置し、spec で指定された永続ストレージをリクエストする MongoDBSearch カスタム リソース (CR)を適用します。

配置手順については、MongoDB Search とベクトル検索を配置する。を参照してください。

mongot プロセスには、データベースや他の検索ノードと共有されない固持ボリュームがあります。ストレージは、データベースから継続的に取得されるデータから構築されるベクトル インデックスを維持するために使用されます。インデックス定義 (メタデータ) はデータベース自体に保存されます。

mongot は、次のアクションを実行します。

  • ベクトル インデックスを管理します。

    mongot は、データベース内のインデックス定義を更新します。

  • データベースからデータを取得します。

    mongot ノードは、データベースへの永続的な接続を確立し、データベースからインデックスをリアルタイムで更新します。

  • ベクトル検索クエリを処理します。

    mongod$vectorSearch クエリを受信すると、クエリは mongot ノードのいずれかに送信されます。クエリを受信した mongot は、クエリを処理し、データを集計し、その結果を mongod に返します。 はその結果をユーザーに転送します。

mongot コンポーネントは 1 つのMongoDBレプリカセットと厳密に結合されているため、複数のデータベースやレプリカセットで共有することはできません。各レプリカセット配置には、専用の検索ノードがあります。

mongotmongod の間のネットワーク接続は両方向で行われます。

  • mongot は、インデックスの構築とクエリの実行に使用されるデータを取得するためにレプリカセットへの接続を確立します。

  • mongodmongot に接続して、インデックス マネジメントやデータのクエリなどの検索関連の操作を転送します。

mongod は、すべての検索クエリのプロキシとして機能します。mongot と直接交流することはありません。

mongot プロセスと mongod プロセスの両方がKubernetesクラスター内に配置されている場合、Kubernetes Operator は両方のプロセスの構成を自動的に実行します。具体的には、Kubernetes Operator は次のことを行います。

  1. MongoDBSearch が参照する MongoDB CRspec.source.mongodbResourceRef を使用して検索するか、命名規則により MongoDBSearch と同じ名前の MongoDB CR を検索します。

  2. YAMLファイルに mongot 構成を生成し、それを <MongoDBSearch.metadata.name>-search-config という名前の構成マップに保存します。

  3. CRspec.persistencespec.resourceRequirements の設定に従って構成されたストレージとリソース要件を持つ <MongoDBSearch.metadata.name>-search という名前のベクトル検索ステートフルセットを配置します。

  4. mongot ホストのホスト名とポート番号を含む必要な setParameter オプションを追加して、すべての mongod プロセスの構成を更新します。

MongoDB レプリカセットが Kubernetes の外にある場合は、Kubernetes 演算子を使用して mongot を配置し、手動でいくつかの手順を実行します。Kubernetes 演算子は検索ポッドの構成を取り扱いますが、MongoDB ノードとネットワークを再構成する必要があります。

MongoDB サーバーが Kubernetes クラスター内にある場合、Kubernetes 演算子はベクトル検索のキーファイル認証を自動的に設定します。MongoDB サーバーが外部にある場合は、レプリカセットのキーファイル認証情報を含む Kubernetes Secret を作成し、MongoDBSearch CR で参照する必要があります。

次のアーキテクチャにはベクトル検索を配置できません。

  • IBM Power (ppc64le)

  • IBM Z (s390x)

Tip