YAML 構成ファイルを使用して、MongoDB Search とベクトル検索配置の mongot を構成します。
Tip
Kubernetes Operator 配置用の MongoDB Controllers の場合、MongoDBSearch カスタム リソースを使用して mongot を構成できます。詳細については、MongoDBSearchを参照してください。
次の例は、MongoDB Community を使用した自己管理型 mongot 配置の利用可能なすべての設定を含む完全な構成構造を示しています。
syncSource: replicaSet: <object> hostAndPort: <string or list of strings> x509: <object> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> scramAuth: <object> username: <string> passwordFile: <string> authSource: <string> tls: <object> enabled: <boolean> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> router: <object> hostAndPort: <string or list of strings> x509: <object> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> scramAuth: <object> username: <string> passwordFile: <string> authSource: <string> tls: <object> enabled: <boolean> caFile: <string> tlsCertificateKeyFile: <string> tlsCertificateKeyFilePasswordFile: <string> replicationReader: readPreference: <string> tagSets: <string or list of strings> storage: <object> dataPath: <string> server: <object> grpc: <object> address: <string> tls: <object> mode: <string> certificateKeyFile: <string> certificateKeyFilePasswordFile: <string> caFile: <string> name: <string> metrics: <object> enabled: <boolean> address: <string> healthCheck: <object> address: <string> logging: <object> verbosity: <string> logPath: <string> embedding: providerEndpoint: <string> queryKeyFile: <string> indexingKeyFile: <string> isAutoEmbeddingViewWriter: <boolean> advancedConfigs: <object> indexing: <object> lucene: <object> refresh: <object> intervalMs: <int> mergePolicy: <object> tiered: <object> vectorMergePolicy: <object> mergeBudgetMb: <int> mergeScheduler: <object> concurrent: <object> maxThreadCount: <int> fieldLimit: <int> querying: <object> lucene: <object> maxClauseLimit: <int> vectorFloorSegmentMB: <double> replication: <object> mongodb: <object> numConcurrentInitialSyncs: <int> numConcurrentChangeStreams: <int> numIndexingThreads: <int> numConcurrentSynonymSyncs: <int> autoEmbedding: <object> materializedView: <object> numConcurrentChangeStreams: <int> numIndexingThreads: <int> numEmbeddingThreads: <int> numConcurrentInitialSyncs: <int> matViewWriterMaxConnections: <int> mvWriteRateLimitRps: <int> embeddingProviderRpsLimit: <int> ftdc: <object> enabled: <boolean> directorySizeMb: <int> fileSizeMb: <int> collectionPeriodMillis: <int>
必要な設定
このセクションでは、すべての mongot 配置に必要な設定について説明します。必要な設定のみを定義すると、 mongot はすべての任意設定にデフォルトを使用します。
syncSource.replicaSet.hostAndPortタイプ: string または string のリスト
mongod接続文字列でシードリストを構築するために使用される1つ以上のホストとポート指定子。提供される指定子の数にかかわらず、mongotはスタンドアロン モードではなく、レプリカセット モードで接続を確立します。
server.grpc.addressタイプ: string
gRPC listenサーバーがリスンするアドレス。次の形式を使用します。
<host>:<port> 自己管理型配置では、このアドレスは、検索とインデックスのマネジメントトラフィックを
mongotに送信するmongodプロセスからアクセス可能である必要があります。mongodがmongotHostとsearchIndexManagementHostAndPortの設定に使用するホストとポートに一致するように設定します。単一ホスト開発の場合、
localhostが最も安全なデフォルトです。mongodとmongotが異なるホストで実行される場合は、server.grpc.addressをmongodがアクセスできるインターフェースに設定します。警告
システムトポロジーによっては、
mongotクエリサーバーをMongoDBクラスターからアクセスできるインターフェースにバインドする必要がある場合があります。0.0.0.0IPアドレスへのバインディングは許可されていますが、サーバーがすべてのパブリック ネットワークに公開され、不正アクセスのリスクが生じます。セキュリティを強化するには、
localhostやその他の信頼できる内部アドレスなど、ネットワークレイヤーで制御および保護されている特定のインターフェースにserver.grpc.addressを制限することを検討してください。
オプション設定
このセクションでは、mongotの任意設定と条件付きで必要な設定について説明します。これらの設定を省略すると、mongotは必要に応じて指定されたデフォルト値を使用します。
レプリカセット認証設定
syncSource.replicaSet.x509型: オブジェクト
必要性:
syncSource.replicaSet.scramAuthを使用しない場合は必要ですX.509 で
mongotをmongodで認証するための証明書設定。
syncSource.replicaSet.x509.caFileタイプ: string
必要性:
syncSource.replicaSet.x509を使用する場合は必須ですmongodが提示する証明書を検証するための信頼された証明書を含む証明書認証機関 (CA) ファイル。ファイルには、PEM 形式の X.509 証明書コレクションが含まれている必要があります。
syncSource.replicaSet.x509.tlsCertificateKeyFileタイプ: string
必要性:
syncSource.replicaSet.x509を使用する場合は必須ですmongotをmongodで認証するための X.509 証明書と秘密キーを含む PEM ファイルへのパス。syncSource.replicaSet.x509を構成する場合に必要です。
syncSource.replicaSet.x509.tlsCertificateKeyFilePasswordFileタイプ: string
必要性: 任意
syncSource.replicaSet.x509.tlsCertificateKeyFileで指定された証明書鍵ファイルを復号化するためのパスワードを含むファイルへのパス。
syncSource.replicaSet.scramAuth.authSourceタイプ: string
必要性: 任意
デフォルト: admin
mongot認証情報に関連付けられているデータベースの名前。
syncSource.replicaSet.scramAuth.tls.enabledタイプ: ブール値
必要性:
syncSource.replicaSet.scramAuth.tlsを指定する場合は必須TLS 認証を有効にするためのフラグ。TLS 認証を有効にするには
trueに設定します。
syncSource.replicaSet.scramAuth.tls.caFileタイプ: string
必要性: 任意
mongodが提示する証明書を検証するための信頼された証明書を含む証明書認証機関 (CA) ファイル。ファイルには、PEM 形式の X.509 証明書コレクションが含まれている必要があります。
シャーディングされたクラスターの設定
syncSource.router型: オブジェクト
mongotのmongosへのレプリケーション接続。省略された場合、mongotはシャーディングされていない環境で実行されていると見なされます。シャーディングされたクラスターの配置に必要です。
syncSource.router.x509型: オブジェクト
必要性:
syncSource.router.scramAuthを使用しない場合は必要ですX.509 で
mongotをmongosで認証するための証明書設定。
syncSource.router.x509.caFileタイプ: string
必要性:
syncSource.router.x509を使用する場合は必須ですmongosが提示する証明書を検証するための信頼された証明書を含む証明書認証機関 (CA) ファイル。ファイルには、PEM 形式の X.509 証明書コレクションが含まれている必要があります。
syncSource.router.x509.tlsCertificateKeyFileタイプ: string
必要性:
syncSource.router.x509を使用する場合は必須ですmongotをmongosで認証するための X.509 証明書と秘密キーを含む PEM ファイルへのパス。syncSource.router.x509を構成する場合に必要です。
syncSource.router.x509.tlsCertificateKeyFilePasswordFileタイプ: string
必要性: 任意
syncSource.router.x509.tlsCertificateKeyFileで指定された証明書鍵ファイルを復号化するためのパスワードを含むファイルへのパス。
syncSource.router.scramAuth.authSourceタイプ: string
必要性: 任意
mongot認証情報に関連付けられているデータベースの名前。指定されていない場合、authSourceはデフォルトでadminになります。
syncSource.router.scramAuth.tls.enabledタイプ: ブール値
必要性:
syncSource.router.scramAuth.tlsを指定する場合は必須TLS 認証を有効にするためのフラグ。TLS 認証を有効にするには
trueに設定します。
syncSource.router.scramAuth.tls.caFileタイプ: string
必要性: 任意
mongosが提示する証明書を検証するための信頼された証明書を含む証明書認証機関 (CA) ファイル。ファイルには、PEM 形式の X.509 証明書コレクションが含まれている必要があります。
レプリケーション読み込み設定 (read preference) 設定
syncSource.replicationReader型: オブジェクト
レプリケーションのためにレプリカセットから読み取る際に、
mongotが使用する読み込み設定(read preference)を制御します。レプリカセットのタグに基づいて読み取りをフィルターするには、
syncSource.replicationReader.tagSetsを指定します。
syncSource.replicationReader.readPreferenceタイプ: string
デフォルト:
secondaryPreferredレプリケーション操作で
mongotが使用する読み込み設定(read preference)です。次の値を指定できます:primaryprimaryPreferredsecondarysecondaryPreferrednearest
注意
インデックス管理コマンドは、この設定に関係なく、常に
primary読み込み設定(read preference)を使用します。
syncSource.replicationReader.tagSetsType: Array
レプリケーション読み取りを受信するレプリカセットのノードをフィルターするタグセットの配列。
syncSource.replicationReader.readPreferenceがprimaryの場合、この設定を構成できません。tagSetsの各要素は、レプリカセット ノードタグに対応する{ name: <name>, value: <value> }オブジェクトの配列です。mongotはタグセットを順番に評価し、ノードにマッチする最初のタグセットを使用します。たとえば、tagSets: - [ { name: hostname, value: mongod1 }, { name: region, value: us-east-1 } ]
gRPC サーバー設定
server.grpc.address設定が必要です。その他の server.grpc 設定はすべて任意です。
server.grpc.tls.modeタイプ: string
gRPC サーバーの TLS モード。次のいずれかの値である必要があります。
"TLS""mTLS""disabled"
server.grpc.tlsを構成する場合に必要です。
server.grpc.tls.certificateKeyFileタイプ: string
PKCS#8 秘密キーを使用して
mongotの有効な X.509 証明書を含む PEM ファイル。mongodは、--tlsCAFileオプションで指定した証明書発行者 (CA) ファイルを使用してこの証明書を検証します。server.grpc.tls.modeが"TLS"または"mTLS"の場合に必要です。
server.grpc.tls.certificateKeyFilePasswordFileタイプ: string
server.grpc.tls.certificateKeyFileで指定された証明書鍵ファイルを復号化するためのパスワードを含むファイルへのパス。
server.grpc.tls.caFileタイプ: string
mongodが提示する証明書を検証するための信頼された証明書を含む証明書認証機関 (CA) ファイル。ファイルには PEM 形式の X.509 証明書コレクションが含まれている必要があります。server.grpc.tls.modeが"mTLS"の場合は必須です。
server.nameタイプ: string
mongotインスタンスを識別するためのユーザー提供名。MongoDB は、$listSearchIndexesなどのプログラムによるインターフェースを使用してmongotホストを識別するためにserver.nameを使用します。この設定を省略すると、MongoDB は名前を自動的に生成します。
メトリクス設定
ヘルスチェック設定
LoggingSettings
自動埋め込み設定
基本設定
自動埋め込みを有効にするには、次の設定を行います。
注意
queryKeyFileとindexingKeyFileはペアとして機能します。いずれかのファイルを設定しない場合、mongotは警告をログし、自動埋め込みを無効にします。providerEndpoint任意です。設定すると、mongotは構成された埋め込みサービスエンドポイントの上書きとして適用します。isAutoEmbeddingViewWriter省略するとデフォルトでfalseになります。
embedding.providerEndpointタイプ: string
埋め込みプロバイダーエンドポイントとなる接続されたデバイスの URL。デフォルトの埋め込みプロバイダーエンドポイントの任意の上書き換え。
mongotにデフォルトのエンドポイントではなく、特定のプロバイダーエンドポイントとなる接続されたデバイスに埋め込みリクエストを送信する場合は、これを使用します。
embedding.isAutoEmbeddingViewWriterタイプ: ブール値
自動埋め込みビューの書き込みを担当するリーダー
mongotインスタンスを指定するフラグ。true の場合、このmongotインスタンスは自動埋め込みマテリアライズドビューの更新の書き込み役を果たします。単一インスタンス配置の場合は、インスタンスが自動埋め込みビューを書き込めることを有効にするため、これを
trueに設定します。レプリカセットまたはシャーディングされたクラスターに複数の
mongotインスタンスがある場合は、1 つのインスタンスのみが自動埋め込みビューを書き込み、重複や競合を防止するようにしてください。値を次のように設定します。trueにより、自動埋め込みビューの書き込みを担当するリージョンとしてmongotインスタンスを指定するようになりました。false自動埋め込みビューを書き込まないフォロワーとしてmongotインスタンスを指定するため。
advancedSettings
advancedConfigs.autoEmbedding.materializedView.numConcurrentChangeStreamsタイプ : 整数
必要性: 任意
デフォルト: ホストの CPU コア数の 2 倍
マテリアライズドビューのレプリケーションプロセスが同時に持つことができる安定状態の変更ストリームの最大数。正の整数である必要があります。
advancedConfigs.autoEmbedding.materializedView.numIndexingThreadsタイプ : 整数
必要性: 任意
デフォルト: ホストの CPU コア数。最小値は
1ですマテリアライズドビューのインデックスに埋め込みデータを書き込むために使用されるスレッドの数。正の整数である必要があります。
advancedConfigs.autoEmbedding.materializedView.numEmbeddingThreadsタイプ : 整数
必要性: 任意
デフォルト: ホストの CPU コア数。最小値は
1です埋め込みプロバイダーから埋め込みをリクエストするために使用されるスレッドの数。正の整数である必要があります。
advancedConfigs.autoEmbedding.materializedView.numConcurrentInitialSyncsタイプ : 整数
必要性: 任意
デフォルト:
advancedConfigs.replication.mongodb.numConcurrentInitialSyncsの半分。結果が1より小さい場合は、1を使用します。advancedConfigs.replication.mongodb.numConcurrentInitialSyncsn を設定しない場合は、デフォルトは1となります。初期同期を同時に実行できる自動埋め込みインデックスの最大数。初期ビルド中に同時実行を制限すると、ソース
mongodノードと埋め込みプロバイダーにかかる負荷が軽減されます。正の整数である必要があります。
advancedConfigs.autoEmbedding.materializedView.matViewWriterMaxConnectionsタイプ : 整数
必要性: 任意
デフォルト:
4マテリアライズドビューコレクションへの書き込みに使用される接続の最大数。
16以下の正の整数である必要があります。
高度なインデックスの作成設定
advancedConfigs.indexing.lucene.refresh.intervalMsタイプ : 整数
必要性: 任意
デフォルト:
1000最近インデックス化された変更をクエリに表示するために、
mongotがインデックスを更新するまで待機する間隔 (ミリ秒)。値が小さいほど、ドキュメントの書き込みからクエリできるまでの遅延が短縮されますが、更新作業の頻度が増えるというコストがかかります。正の整数である必要があります。
advancedConfigs.indexing.lucene.mergePolicy.tiered.vectorMergePolicy.mergeBudgetMbタイプ : 整数
必要性: 任意
デフォルト: ホストの総メモリの 10%
ベクトルインデックスセグメントのバックグラウンドマージに使用できるメモリバッジェット(メガバイト)。バッジェットが大きいほど、一度にまとめられるセグメントの数が増え、クエリパフォーマンスが向上する可能性がありますが、マージ中に使用されるメモリは増えます。正の整数である必要があります。
高度なクエリ設定
詳細なレプリケーション設定
advancedConfigs.replication.mongodb.numConcurrentInitialSyncsタイプ : 整数
必要性: 任意
デフォルト: ホストの CPU コア数と
2のいずれか小さい方同時に最初の同期を実行できるインデックスの最大数。同時実行を制限すると、多くのインデックスが同時に構築される際に、ソース
mongodノードにかかる負荷が軽減されます。正の整数である必要があります。
advancedConfigs.replication.mongodb.numConcurrentChangeStreamsタイプ : 整数
必要性: 任意
デフォルト: ホストの CPU コア数の 2 倍
ソース
mongodノードに対して未処理のリクエストを同時に持つことができる定常状態の変更ストリームの最大数。この設定は、最初の同期が完了した後、同時に更新をプルできるインデックスの数を制御します。正の整数である必要があります。
詳細な FTDC 設定
advancedConfigs.ftdc.enabledタイプ: ブール値
必要性: 任意
デフォルト:
trueフルタイム診断データ取得 (FTDC) を有効にするフラッグ。FTDC 診断データのコレクションはデフォルトで有効になっています。
falseの場合、mongotはブートストラップ時に FTDC レポーターを作成しないため、診断データを取得しません。
advancedConfigs.ftdc.directorySizeMbタイプ : 整数
必要性: 任意
デフォルト:
100FTDC アーカイブ ディレクトリの合計サイズの最大値(メガバイト)。
10以上かつadvancedConfigs.ftdc.fileSizeMbより大きい値である必要があります。