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

セグメント間でのクエリ実行の並列化

concurrent オプションはクエリ内並列処理を有効にします。このモードでは 、 MongoDB Search はより多くのリソースを使用しますが、個々の クエリのレイテンシ は改善されます。この機能は 専用の検索ノードでのみ使用できます。

concurrent オプションでクエリを実行する場合、MongoDB Search は各クエリが同時に実行されることを保証しません。例として、同時クエリが多すぎてキューに入った場合、MongoDB Search はシングルスレッド実行にフォールバックする可能性があります。

concurrent の構文は次のとおりです。

{
"$searchMeta"|"$search": {
"index": "<index name>", // optional, defaults to "default"
"<operator>": {
<operator-specifications>
},
"concurrent": true | false,
...
}
}

concurrent ブール値オプションを使用すると、MongoDB Search にセグメント間でのクエリ実行を並列化するようにリクエストできます。これにより、多くの場合、応答時間が短縮されます。concurrent オプションには、次のいずれかの値を設定できます。

  • true - MongoDB Search にクエリをマルチスレッドで実行するようリクエスト

  • false - クエリをシングルスレッドで実行する場合(デフォルト)

MongoDB Search では、クエリごとにこの動作を制御して、重いクエリや長時間実行されるクエリのみの同時実行を有効にすることで、競合が最小限に抑えられ、クエリ全体のスループットが向上します。セグメントの量が多いため、同時実行は特に大規模なデータセットで効率的です。

MongoDB Search は複数のスレッドで平行クエリを実行するため、クエリがより迅速に完了します。しかし、クエリの実行中は、ユーザーの Search ノード 上で CPU の消費が増えます。大量または短時間のクエリに対して concurrent オプションを有効にすると、サーチ ノードの CPU が飽和し、クエリの全体的なスループットが低下します。CPU への影響を抑えるには、レイテンシの低減によりメリットがある大量で長時間にわたるクエリにのみ concurrent オプションを有効にします。

個々のクエリのCPUコストを測定するには、explainを使用してクエリを実行し、resourceUsageドキュメントのuserTimeMs、systemTimeMs、およびmaxReportingThreadsフィールドを検討します。

To monitor CPU usage across your deployment, view the Atlas cluster metrics and the Review MongoDB Search Metrics. Atlas can also trigger MongoDB Search alerts that measure the amount of CPU that MongoDB Search processes use. If CPU usage approaches the limits of acceptable performance, scale your Search Nodes vertically or horizontally. To learn more, see Tips for Sizing and Scaling Search Nodes.

Consider the following query against the sample_mflix.movies collection in the sample data. The query indicates a concurrent search for movies that contain the term new york in the title.

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "new york"
7 },
8 "concurrent": true
9 }
10 }
11])