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

MongoDB Search のアーキテクチャ

MongoDB Search は、MongoDB データベース配置 (mongod) と一緒に mongot プロセスを配置することで、Kubernetes 環境でフルテキスト検索機能を有効にします。mongot プロセスは、検索インデックスをマネージし、データベースからデータを取得し、$search および $searchMeta クエリを処理します。これにより、高度な検索機能を提供しながら、個別の検索システムを維持する必要がなくなります。

MongoDB Searchを配置するには、Kubernetes Operatorが取り込んでmongotポッドを配置し、specで指定された永続ストレージをリクエストするMongoDBSearch Custom Resource (CR)を適用します。

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

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

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

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

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

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

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

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

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

mongot コンポーネントは 1 つのMongoDBレプリカセットと厳密に結合されているため、複数のデータベースやレプリカセットで共有することはできません。各レプリカセット配置には、専用の検索ノードがあります。検索ノードアーキテクチャの詳細については、MongoDB Searchドキュメントの「ノードアーキテクチャ」を参照してください。

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. CR 内の spec.persistencespec.resourceRequirements に従って構成されたストレージとリソースの要件を持つ <MongoDBSearch.metadata.name>-search という名前の MongoDB Search ステートフルセットを配置します。

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

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

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

次のアーキテクチャではMongoDB Searchを配置できません。

  • IBM Power (ppc64le)

  • IBM Z (s390x)

Tip