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

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

MongoDB Vector Search enables AI-powered semantic search capabilities in your Kubernetes environment by deploying the mongot process alongside your MongoDB database deployment (mongod). The mongot process manages vector indexes, sources data from the database, and processes $vectorSearch queries. This eliminates the need to maintain separate systems in sync while providing advanced search features.

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

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

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

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

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

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

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

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

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

    When mongod receives a $vectorSearch query, it directs the query to one of the mongot nodes. The mongot that receives the query processes the query, aggregates the data, and returns the results to mongod, which forwards the results to the user.

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