Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

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

項目一覧

  • 構文
  • 動作
  • 制限

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

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

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

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

  • true - Atlas Search にクエリのマルチスレッド実行をリクエストする

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

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

concurrentオプションを使用してクエリを実行する場合、Atlas Search は各クエリが同時に実行されることを保証しません。 たとえば、同時クエリが多すぎる場合、Atlas Search は単一スレッド実行にフォールバックする可能性があります。

サンプル データのsample_mflix.moviesコレクションに対する次のクエリを検討します。 クエリは、 title内にタームnew yorkを含む映画の同時検索を示します。

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

戻る

1. 結果を並べ替える