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

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レプリカセットと厳密に結合されているため、複数のデータベースやレプリカセットで共有することはできません。各レプリカセット配置には、専用の検索ノードがあります。

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

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

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

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

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

  1. MongoDBSearch が spec.source.mongodbResourceRef を使用して参照する MongoDB CR を検出します。または、MongoDBSearch と同じ名前の MongoDB CR を検索することで、命名規約に基づいて検出します。

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

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

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

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

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

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

  • IBM Power (ppc64le)

  • IBM Z (s390x)

Tip