インデックス作成の場合、 MongoDB Search は各ドキュメントが別のドキュメントにネストされていない場合、単一のインデックスオブジェクトとしてカウントします。埋め込みドキュメントの場合、 MongoDB Search はネストのレベル数に応じて各埋め込みドキュメントを追加のインデックスオブジェクトとしてカウントします。MongoDB Search は、2、100、000、000インデックスオブジェクトを超えるインデックスの変更の複製を停止します。
MongoDB Search を別個の検索ノードに配置した場合、インデックスをパーティショニングすることで、MongoDB Search インデックス オブジェクトの数を増やすことができます。デフォルトでは、MongoDB Search はシャードごとに 1 つのパーティションをサポートします。各パーティションは最大 2,000,000,000 個のインデックスオブジェクトをサポートします。numPartitions オプションを使用することで、最大 4 つ(4)のパーティションを持つインデックスを作成できます。これらのパーティションは、クラスターまたはシャードごとに最大 8B のドキュメントをサポートする単一のインデックスを表します。
インデックスのパーティションを構成すると、MongoDB Search はインデックスオブジェクトをパーティション間で最適な方法で自動分散します。インデックスパーティションを持つコレクションに対してクエリを実行すると、MongoDB Search はクエリをすべてのパーティションに分散し、検索結果とメタデータを収集して、結果をソート、マージ、返します。クエリで 同時 を true に設定すると、MongoDB Search はクエリをパーティション間で同時に実行してパフォーマンスを向上させます。
次の場合、インデックスをパーティショニングすることをお勧めします。
インデックス オブジェクトが合計上限数の 50% に達しています。
コレクション内のドキュメントの数が 2,000,000,000 に達します。
インデックスには最大 8,000,000,000 のドキュメントが含まれます。
MongoDB Search がレプリケーションを停止したため、インデックスは
STALE状態です。
注意
インデックスサイズとパーティションをモニターする。インデックスが制限を超えると、 MongoDB Search は変更のレプリケートを停止し、古いデータが発生します。この制限に達する前に、パーティションの数を増やす必要があります。まれに、 MongoDB の担当者がユーザーに代わってパーティションを調整するため、インデックスの再構築がトリガーされ、 クエリのレイテンシが増加する可能性があります。
パーティションを設定するか、パーティション数を変更すると、 MongoDB Search はインデックスの再構築 をトリガーします。
クラスターに複数のパーティションがある場合は、すべての検索ノードを削除し、mongod プロセスと mongot プロセスの両方が 同じノードで実行される配置モデルに移行することはできません。
構文
1 { 2 "numPartitions": <integer> 3 }
サポートされている値
MongoDB Search numPartitions オプションには次の値があります。
1- 追加のパーティションなしで単一のインデックスを作成します。これはデフォルト値です。2- 最大 4,000,000,000 のドキュメントに対して最大 2 つのパーティションを作成します。4- 最大 8,000,000,000 のドキュメントに対して最大 4 つのパーティションを作成します。
例
次のインデックス例では、sample_mflix.moviesコレクションを使用して、コレクション内のデータに対して最大 4 のパーティションを構成する方法を示します。Atlas UIおよび その他のサポートされているクライアント で、ビジュアル エディターまたは JSON エディターを使用してインデックスを作成できます。