Docs 菜单
Docs 主页
/ /

配置索引分区

对于索引,当每个文档未嵌套在另一个文档中时, MongoDB Search 将其计为单个索引对象。对于嵌入式文档, MongoDB Search 根据嵌套级别数将每个嵌入式文档计为附加索引对象。MongoDB Search 停止复制大于 2、100、000、000索引对象的索引更改。

如果在单独的搜索节点上部署了MongoDB搜索,则可以通过对索引分区来增加MongoDB搜索索引对象的数量。默认下, MongoDB Search 支持每个分片一个分区。每个分区最多支持 2 十亿个索引对象。通过使用 numPartitions 选项,您可以创建最多具有四个 (4) 个分区的索引。这些分区表示单个索引,每个集群或分片最多支持8B 个文档。

为索引配置分区时, MongoDB Search 会自动以最佳方式在分区之间分配索引对象。当您对具有索引分区的集合运行查询时, MongoDB Search 会将查询分散到所有分区,并收集搜索结果和元数据以对结果进行排序、合并和返回。

我们建议在以下情况下对您的索引进行分区:

  • 您的索引对象已达到总限制的 50%。

  • 集合中的文档数量已达到 20 亿。

  • 您的索引最多将包含 80 亿份文档。

  • 您的索引处于 STALE 状态,因为MongoDB Search 已停止复制。

注意

MongoDB主动监控所有搜索索引的文档计数。当搜索索引接近索引对象的上限时, MongoDB可能会调整索引分区的数量以避免超过此限制。这可以防止稳态复制中断,中断会导致数据过时,但可能会增加查询延迟。

当您配置分区或修改分区数量时, MongoDB Search 会触发索引的重建。

如果集群中有多个分区,则无法删除所有搜索节点并迁移到 mongodmongot 进程在同一节点上运行的部署模型。

1{
2 "numPartitions": <integer>
3}

MongoDB Search numPartitions 选项采用以下值:

  • 1 — 创建单个索引,无需额外分区。这是默认值。

  • 2 — 为最多 40 亿份文档创建最多两个分区。

  • 4 — 为最多 80 亿个文档创建最多四个分区。

以下索引示例使用 sample_mflix.movies集合演示如何为集合中的数据配置最多 4 个分区。您可以使用Atlas用户界面中的可视化编辑器或 JSON编辑器以及 其他受支持的客户端来创建索引。

后退

同义词映射

在此页面上