对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

配置 mongot

使用 YAML 配置文件为MongoDB Search和向量搜索部署配置 mongot

提示

对于 Kubernetes Operator 部署的 MongoDB 控制器,您可以使用 MongoDBSearch 自定义资源来配置 mongot。有关更多信息,请参阅 MongoDBSearch。

以下示例显示了具有 MongoDB Community 的自管理 mongot 部署的所有可用设置的完整配置结构:

syncSource:
replicaSet: <object>
hostAndPort: <string or list of strings>
x509: <object>
caFile: <string>
tlsCertificateKeyFile: <string>
tlsCertificateKeyFilePasswordFile: <string>
scramAuth: <object>
username: <string>
passwordFile: <string>
authSource: <string>
tls: <object>
enabled: <boolean>
caFile: <string>
tlsCertificateKeyFile: <string>
tlsCertificateKeyFilePasswordFile: <string>
router: <object>
hostAndPort: <string or list of strings>
x509: <object>
caFile: <string>
tlsCertificateKeyFile: <string>
tlsCertificateKeyFilePasswordFile: <string>
scramAuth: <object>
username: <string>
passwordFile: <string>
authSource: <string>
tls: <object>
enabled: <boolean>
caFile: <string>
tlsCertificateKeyFile: <string>
tlsCertificateKeyFilePasswordFile: <string>
replicationReader:
readPreference: <string>
tagSets: <string or list of strings>
storage: <object>
dataPath: <string>
server: <object>
grpc: <object>
address: <string>
tls: <object>
mode: <string>
certificateKeyFile: <string>
certificateKeyFilePasswordFile: <string>
caFile: <string>
name: <string>
metrics: <object>
enabled: <boolean>
address: <string>
healthCheck: <object>
address: <string>
logging: <object>
verbosity: <string>
logPath: <string>
embedding:
providerEndpoint: <string>
queryKeyFile: <string>
indexingKeyFile: <string>
isAutoEmbeddingViewWriter: <boolean>
advancedConfigs: <object>
indexing: <object>
lucene: <object>
refresh: <object>
intervalMs: <int>
mergePolicy: <object>
tiered: <object>
vectorMergePolicy: <object>
mergeBudgetMb: <int>
mergeScheduler: <object>
concurrent: <object>
maxThreadCount: <int>
fieldLimit: <int>
querying: <object>
lucene: <object>
maxClauseLimit: <int>
vectorFloorSegmentMB: <double>
replication: <object>
mongodb: <object>
numConcurrentInitialSyncs: <int>
numConcurrentChangeStreams: <int>
numIndexingThreads: <int>
numConcurrentSynonymSyncs: <int>
autoEmbedding: <object>
materializedView: <object>
numConcurrentChangeStreams: <int>
numIndexingThreads: <int>
numEmbeddingThreads: <int>
numConcurrentInitialSyncs: <int>
matViewWriterMaxConnections: <int>
mvWriteRateLimitRps: <int>
embeddingProviderRpsLimit: <int>
ftdc: <object>
enabled: <boolean>
directorySizeMb: <int>
fileSizeMb: <int>
collectionPeriodMillis: <int>

本节介绍所有 mongot 部署所需的设置。如果仅定义所需设置,则 mongot 会对所有可选设置使用默认值。

syncSource.replicaSet

类型:对象

mongot 复制到 mongod 的连接。

syncSource.replicaSet.hostAndPort

Type: string or List of strings

用于在 mongod 连接字符串中构建种子列表的一个或多个托管和端口指定符。无论提供的指定符数量如何,mongot 都会在副本集模式下建立连接,而不是独立运行的实例模式。

storage.dataPath

类型:字符串

mongot 必须用作存储索引数据和本地索引目录的基本路径的路径。

server

类型:对象

mongot查询服务器的设置。

server.grpc

类型:对象

用于 mongotmongod 之间 gRPC 通信的监听服务器设置。

server.grpc.address

类型:字符串

gRPC 监听服务器监听的地址。使用以下格式:

<host>:<port>

在自管理部署中,发送搜索和索引管理流量到 mongotmongod 进程必须能访问此地址。将其配置为与 mongod 用于 mongotHostsearchIndexManagementHostAndPort 设置的主机和端口匹配。

对于单一主机开发,localhost 是最安全的默认设置。如果 mongodmongot 在不同的主机上运行,请将 server.grpc.address 设置为 mongod 可以访问的接口。

警告

根据您的系统拓扑结构,可能需要将 mongot查询服务器绑定到可从 MongoDB 集群访问的接口。虽然允许绑定到 0.0.0.0 IP解决,但这会将服务器暴露于所有公共网络,并带来未经授权访问权限的风险。

为了增强安全性,请考虑将 server.grpc.address 限制为在网络层受控制和保护的特定接口,例如 localhost 或其他可信内部地址。

本节介绍 mongot 的可选和有条件必需的设置。如果您省略这些设置,mongot 将在适用时使用指定的默认。

syncSource.replicaSet.x509

类型:对象

必要性:如果您不使用 ,则必须进行此操作。syncSource.replicaSet.scramAuth

X.509 证书设置,用于使 mongotmongod 进行身份验证。

syncSource.replicaSet.x509.caFile

类型:字符串

必要性:如果使用 syncSource.replicaSet.x509,则为必需

证书明局 (CA) 文件,其中包含用于验证 mongod 提供的证书的可信证书。该文件必须包含 PEM 格式的 X.509 证书集合。

syncSource.replicaSet.x509.tlsCertificateKeyFile

类型:字符串

必要性:如果使用 syncSource.replicaSet.x509,则为必需

PEM 文件的路径,该文件包含 X.509 证书和私钥,用于使用 mongodmongot 进行身份验证。配置 syncSource.replicaSet.x509 时必须。

syncSource.replicaSet.x509.tlsCertificateKeyFilePasswordFile

类型:字符串

必要性:可选

包含用于解密 syncSource.replicaSet.x509.tlsCertificateKeyFile 中指定的证书密钥文件的密码的文件的路径。

syncSource.replicaSet.scramAuth

类型:对象

必要性:如果您不使用 ,则必须进行此操作。syncSource.replicaSet.x509

SCRAM 身份验证的设置。

syncSource.replicaSet.scramAuth.username

类型:字符串

必要性:必需

要进行身份验证的用户名。

syncSource.replicaSet.scramAuth.passwordFile

类型:字符串

必要性:必需

包含用于身份验证的密码的文件的路径。

syncSource.replicaSet.scramAuth.authSource

类型:字符串

必要性:可选

默认值:admin

mongot 身份验证凭证关联的数据库名称。

syncSource.replicaSet.scramAuth.tls

类型:对象

必要性:可选

默认:false

TLS 设置。

syncSource.replicaSet.scramAuth.tls.enabled

类型:布尔值

必要性:如果指定 syncSource.replicaSet.scramAuth.tls,则为必需

启用 TLS 身份验证的标志。设置为 true 以启用 TLS 身份验证。

syncSource.replicaSet.scramAuth.tls.caFile

类型:字符串

必要性:可选

证书明局 (CA) 文件,其中包含用于验证 mongod 提供的证书的可信证书。该文件必须包含 PEM 格式的 X.509 证书集合。

syncSource.replicaSet.scramAuth.tls.tlsCertificateKeyFile

类型:字符串

必要性:可选

PEM文件的路径,该文件包含 x.509 证书和私钥,用于使用 mongodmongot 进行身份验证。

syncSource.replicaSet.scramAuth.tls.tlsCertificateKeyFilePasswordFile

类型:字符串

必要性:可选

包含用于解密 syncSource.replicaSet.scramAuth.tls.tlsCertificateKeyFile 中指定的证书密钥文件的密码的文件的路径。

syncSource.router

类型:对象

mongot 复制到 mongos 的连接。如果省略,mongot 则认为它在非分片环境中运行。分片集群部署所必。

syncSource.router.x509

类型:对象

必要性:如果您不使用 ,则必须进行此操作。syncSource.router.scramAuth

X.509 证书设置,用于使 mongotmongos 进行身份验证。

syncSource.router.x509.caFile

类型:字符串

必要性:如果使用 syncSource.router.x509,则为必需

证书明局 (CA) 文件,其中包含用于验证 mongos 提供的证书的可信证书。该文件必须包含 PEM 格式的 X.509 证书集合。

syncSource.router.x509.tlsCertificateKeyFile

类型:字符串

必要性:如果使用 syncSource.router.x509,则为必需

PEM 文件的路径,该文件包含 X.509 证书和私钥,用于使用 mongosmongot 进行身份验证。配置 syncSource.router.x509 时必须。

syncSource.router.x509.tlsCertificateKeyFilePasswordFile

类型:字符串

必要性:可选

包含用于解密 syncSource.router.x509.tlsCertificateKeyFile 中指定的证书密钥文件的密码的文件的路径。

syncSource.router.scramAuth

类型:对象

必要性:如果您不使用 ,则必须进行此操作。syncSource.router.x509

SCRAM 身份验证的设置。

syncSource.router.scramAuth.username

类型:字符串

必要性:必需

要进行身份验证的用户名。

syncSource.router.scramAuth.passwordFile

类型:字符串

必要性:必需

包含用于身份验证的密码的文件的路径。

syncSource.router.scramAuth.authSource

类型:字符串

必要性:可选

mongot身份验证凭证关联的数据库名称。如果未指定,则 authSource 默认为 admin

syncSource.router.scramAuth.tls

类型:对象

必要性:可选

默认:false

TLS 设置。

syncSource.router.scramAuth.tls.enabled

类型:布尔值

必要性:如果指定 syncSource.router.scramAuth.tls,则为必需

启用 TLS 身份验证的标志。设置为 true 以启用 TLS 身份验证。

syncSource.router.scramAuth.tls.caFile

类型:字符串

必要性:可选

证书明局 (CA) 文件,其中包含用于验证 mongos 提供的证书的可信证书。该文件必须包含 PEM 格式的 X.509 证书集合。

syncSource.router.scramAuth.tls.tlsCertificateKeyFile

类型:字符串

必要性:可选。

PEM文件的路径,该文件包含 x.509 证书和私钥,用于使用 mongosmongot 进行身份验证。

syncSource.router.scramAuth.tls.tlsCertificateKeyFilePasswordFile

类型:字符串

包含用于解密 syncSource.router.scramAuth.tls.tlsCertificateKeyFile 中指定的证书密钥文件的密码的文件的路径。

syncSource.replicationReader

类型:对象

控制 mongot 在从副本集读取以进行复制时使用的读取偏好(read preference)。

要按副本集节点标签过滤读取,请指定 syncSource.replicationReader.tagSets

syncSource.replicationReader.readPreference

类型:字符串

默认值secondaryPreferred

读取偏好(read preference)mongot 用于复制操作。您可以指定以下值:

  • primary

  • primaryPreferred

  • secondary

  • secondaryPreferred

  • nearest

注意

无论此设置如何,索引管理命令始终使用 primary 读取偏好。

syncSource.replicationReader.tagSets

Type: Array

用于筛选哪些副本集成员接收复制读取的标签集数组。如果 syncSource.replicationReader.readPreferenceprimary,则无法配置此设置。

tagSets 的每个元素都是一个由 { name: <name>, value: <value> } 对象组成的数组,这些对象用于匹配副本集成员标签。mongot 会按顺序评估这些标签集,并使用第一个匹配到成员的标签集。例如:

tagSets:
- [ { name: hostname, value: mongod1 },
{ name: region, value: us-east-1 } ]

需要 server.grpc.address 设置。所有其他 server.grpc 设置均为可选。

server.grpc.tls

类型:对象

TLS gRPC 监听服务器的配置选项。

server.grpc.tls.mode

类型:字符串

gRPC 服务器的 TLS 模式。必须是以下值之一:

  • "TLS"

  • "mTLS"

  • "disabled"

配置 server.grpc.tls 时必需。

server.grpc.tls.certificateKeyFile

类型:字符串

包含用于 mongot 的有效 X.509 证书的 PEM 文件,使用 PKCS#8 私钥。mongod 使用您使用 --tlsCAFile 选项指定的证书授权机构 (CA) 文件验证此证书。当 server.grpc.tls.mode"TLS""mTLS" 时,此项为必填项。

server.grpc.tls.certificateKeyFilePasswordFile

类型:字符串

包含用于解密 server.grpc.tls.certificateKeyFile 中指定的证书密钥文件的密码的文件的路径。

server.grpc.tls.caFile

类型:字符串

证书明局 (CA) 文件,其中包含用于验证 mongod 提供的证书的可信证书。该文件必须包含 PEM 格式的 X.509 证书集合。当 server.grpc.tls.mode"mTLS" 时必须。

server.name

类型:字符串

用户提供的名称,用于标识 mongot 实例。MongoDB 使用 server.name 通过 $listSearchIndexes 等程序化接口标识 mongot 主机。如果您省略此设置,MongoDB 将自动生成名称。

metrics

类型:对象

mongot Prometheus指标端点侦听器的设置。

metrics.enabled

类型:布尔值

默认:false

启用 Prometheus 指标终结点的标志。如果将其设置为 false,MongoDB 会解析并验证 metrics 区块中其他设置的语法,但不会启动 Prometheus 指标侦听器。配置 metrics 时必需。

metrics.address

类型:字符串

默认值localhost:9946

Prometheus /metrics 终结点公开的套接字地址 (IPv4 或 IPv6)。使用以下格式:

<host>:<port>
healthCheck

类型:对象

mongot 健康检查终结点的设置。您无法禁用健康检查终结点,但可以配置其监听地址。

healthCheck.address

类型:字符串

默认值localhost:8080

健康检查监听器监听的地址。使用以下格式:

<host>:<port>
logging

类型:对象

日志记录选项。

logging.verbosity

类型:字符串

默认值INFO

日志记录的详细程度。该值必须是有效的 Logback 日志级别。

logging.logPath

类型:字符串

mongot 使用 Logback 文件添加器写入日志的文件路径。如果您省略此设置,MongoDB 将不创建或配置日志文件添加器。

配置以下设置以启用自动嵌入。

注意

  • queryKeyFileindexingKeyFile 作为一对。如果您未配置任何文件,则 mongot 会记录警告并禁用自动嵌入。

  • providerEndpoint 是可选的。设置后,mongot 会将其作为配置的嵌入服务终结点的覆盖。

  • isAutoEmbeddingViewWriter 如果省略,则默认为 false

embedding.providerEndpoint

类型:字符串

嵌入提供商终结点的 URL。默认嵌入提供商终结点的可选覆盖。如果您希望 mongot 将嵌入请求发送到特定提供商终结点而不是默认终结点,请使用此选项。

embedding.queryKeyFile

类型:字符串

包含查询时间嵌入请求密钥的文件路径。自动嵌入所必。

embedding.indexingKeyFile

类型:字符串

包含索引时间嵌入请求密钥的文件路径。自动嵌入所必。

embedding.isAutoEmbeddingViewWriter

类型:布尔值

标志用于指定负责编写自动嵌入视图的主节点 mongot 实例。如果为 true,则此 mongot 实例将作为自动嵌入物化视图更新的写入器。

对于单实例部署,将其设置为 true,以使该实例能够写入自动嵌入视图。

如果副本集或分片集群有多个 mongot 实例,请确保只有一个实例写入自动嵌入视图,以防止重复或冲突。将值设置为:

  • truemongot实例指定为负责写入自动嵌入视图的主节点。

  • falsemongot 实例指定为不写入自动嵌入视图的从者。

advancedConfigs.autoEmbedding.materializedView.numConcurrentChangeStreams

类型:整数

必要性:可选

默认:主机 CPU 核心数的 2 倍

物化视图复制过程在任何时候可以有未完成的稳态变更流的最大数量。必须是正整数。

advancedConfigs.autoEmbedding.materializedView.numIndexingThreads

类型:整数

必要性:可选

默认:主机的 CPU 核数,最小值为 1

用于将嵌入数据写入物化视图索引的线程数。必须是正整数。

advancedConfigs.autoEmbedding.materializedView.numEmbeddingThreads

类型:整数

必要性:可选

默认:主机的 CPU 核数,最小值为 1

用于从嵌入提供商请求嵌入的线程数。必须是正整数。

advancedConfigs.autoEmbedding.materializedView.numConcurrentInitialSyncs

类型:整数

必要性:可选

默认advancedConfigs.replication.mongodb.numConcurrentInitialSyncs 的一半。如果结果小于 1,则使用 1。如果您也未设置 advancedConfigs.replication.mongodb.numConcurrentInitialSyncs,则默认为 1

可同时运行初始同步的自动嵌入索引的最大数量。限制并发性可以减少在初始构建过程中对源 mongod 节点和嵌入提供商造成的负载。必须是正整数。

advancedConfigs.autoEmbedding.materializedView.matViewWriterMaxConnections

类型:整数

必要性:可选

默认值4

用于向物化视图集合写入的最大连接数。必须是不大于 16 的正整数。

advancedConfigs.autoEmbedding.materializedView.mvWriteRateLimitRps

类型:整数

必要性:可选

Default: No limit

此节点上物化视图集合的每秒批量写入提交次数上限。使用此设置可限制对源 mongod 节点的写入吞吐量。必须是正整数。

advancedConfigs.autoEmbedding.materializedView.embeddingProviderRpsLimit

类型:整数

必要性:可选

Default: No limit

该节点可以向嵌入提供商发送的每秒最大请求数。这是节点级别限制。必须是不大于 100 的正整数。

advancedConfigs.indexing.lucene.refresh.intervalMs

类型:整数

必要性:可选

默认值1000

mongot 在刷新索引以使最近索引的更改对查询可见之前等待的间隔(以毫秒为单位)。较低的值可以减少写入文档和查询文档之间的延迟,但以更频繁的刷新工作为费用。必须是正整数。

advancedConfigs.indexing.lucene.mergePolicy.tiered.vectorMergePolicy.mergeBudgetMb

类型:整数

必要性:可选

默认:托管总内存的 10%

可用于向量索引段后台合并的内存预算(以兆字为单位)。更大的预算允许一次合并更多的段,这可以提高查询性能,但在合并过程中会使用更多内存。必须是正整数。

advancedConfigs.indexing.lucene.mergeScheduler.concurrent.maxThreadCount

类型:整数

必要性:可选

默认:主机可用的 CPU 核数

可同时执行索引段合并的最大线程数。值越高,可并行运行的合并数越多。必须是正整数。

advancedConfigs.indexing.lucene.fieldLimit

类型:整数

必要性:可选

Default: No limit

索引中允许的最大索引字段数。使用此设置可防止索引中字段的无界增长。必须至少为 3

advancedConfigs.querying.lucene.maxClauseLimit

类型:整数

必要性:可选

默认值1024

单个查询可扩展的最大子句数。mongot 拒绝超过此限制的查询。提高此限制可实现更大的查询,但会增加其内存和 CPU 成本。必须是正整数。

advancedConfigs.querying.lucene.vectorFloorSegmentMB

类型:double

必要性:可选

默认值64.0

MongoDB 向量搜索索引的合并策略使用的底层段大小(以兆字为单位)。mongot 会更加积极地将小于 advancedConfigs.querying.lucene.vectorFloorSegmentMB 的段合并在一起,以减少段的总数并提高查询性能。值必须是正数。

advancedConfigs.replication.mongodb.numConcurrentInitialSyncs

类型:整数

必要性:可选

默认:主机 CPU 核心数和 2 中的较小值

可同时运行其初始同步的索引的最大数量。限制并发性可以减少在多个索引同时构建时对源 mongod 节点造成的负载。必须是正整数。

advancedConfigs.replication.mongodb.numConcurrentChangeStreams

类型:整数

必要性:可选

默认:主机 CPU 核心数的 2 倍

可同时向源 mongod 节点发出未处理请求的稳定状态变更流的最大数量。此设置控制在初始同步完成后可同时拉取更新的索引数量。必须是正整数。

advancedConfigs.replication.mongodb.numIndexingThreads

类型:整数

必要性:可选

默认:托管 CPU 核心数的一半,最少为 1

用于将复制的文档和更改写入索引的线程数。较高的值可以提高索引吞吐量,但可能会增加 CPU 和内存使用量。该值必须是正整数。

advancedConfigs.replication.mongodb.numConcurrentSynonymSyncs

类型:整数

必要性:可选

默认值2

可同步并发的同义词源集合的最大数量。必须是正整数。

advancedConfigs.ftdc.enabled

类型:布尔值

必要性:可选

默认值true

启用全时诊断数据采集 (FTDC)的标志。FTDC 诊断数据采集默认处于启用状态。当 false时,mongot 在自启动时不会创建 FTDC 报告程序,因此不会采集诊断数据。

advancedConfigs.ftdc.directorySizeMb

类型:整数

必要性:可选

默认值100

FTDC 存档目录的最大总大小,以兆字为单位。必须大于等于 10 并且大于 advancedConfigs.ftdc.fileSizeMb

advancedConfigs.ftdc.fileSizeMb

类型:整数

必要性:可选

默认值10

单个 FTDC 存档文件的最大大小(以兆字为单位)。必须至少为 1,且小于 advancedConfigs.ftdc.directorySizeMb

advancedConfigs.ftdc.collectionPeriodMillis

类型:整数

必要性:可选

默认值1000

采样间隔(以毫秒为单位),用于控制 mongot 将指标收集到 FTDC 的频率。必须至少为 100