Docs 菜单
Docs 主页
/
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。对结果进行排序