在启动时配置 Meilisearch
在自托管 Meilisearch 时,您可以在启动时使用 **命令行选项**、**环境变量** 或 **配置文件** 来配置您的实例。
这些启动选项会影响您的整个 Meilisearch 实例,而不仅仅影响单个索引。对于影响单个索引内搜索的设置,请参见 索引设置。
命令行选项和标志
在启动 Meilisearch 实例时,传递 **命令行选项** 及其相应的值。
./meilisearch --db-path ./meilifiles --http-addr 'localhost:7700'
在前面的示例中,./meilisearch
是启动 Meilisearch 实例的命令,而 --db-path
和 --http-addr
是修改该实例行为的选项。
Meilisearch 还具有一些 **命令行标志**。与命令行选项不同,**标志不接受值**。如果给定了标志,则会激活它并更改 Meilisearch 的默认行为。
./meilisearch --no-analytics
上面的标志会禁用 Meilisearch 实例的分析功能,并且不接受值。
**命令行选项和命令行标志优先于环境变量。** 所有命令行选项和标志都以 --
开头。
环境变量
要使用环境变量配置 Meilisearch 实例,请在启动实例之前设置环境变量。如果您不确定如何操作,请阅读有关 设置和列出环境变量 的更多信息,或者使用 命令行选项。
export MEILI_DB_PATH=./meilifiles
export MEILI_HTTP_ADDR=localhost:7700
./meilisearch
在前面的示例中,./meilisearch
是启动 Meilisearch 实例的命令,而 MEILI_DB_PATH
和 MEILI_HTTP_ADDR
是修改该实例行为的环境变量。
用于命令行标志的环境变量接受 n
、no
、f
、false
、off
和 0
作为 false
。缺少的环境变量也将被视为 false
。任何其他值都被视为 true
。
环境变量始终与相应的命令行选项相同,但以 MEILI_
开头并全部大写。
配置文件
Meilisearch 接受 .toml
格式的配置文件作为命令行选项和环境变量的替代方案。配置文件可以轻松共享和版本化,并且允许您定义多个选项。
当同时使用时,环境变量会覆盖配置文件,而命令行选项会覆盖环境变量。
您可以使用以下命令下载默认配置文件
curl https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml > config.toml
默认情况下,Meilisearch 会在工作目录中查找 config.toml
文件。如果存在,它将用作配置文件。您可以在启动 Meilisearch 时验证这一点
888b d888 d8b 888 d8b 888
8888b d8888 Y8P 888 Y8P 888
88888b.d88888 888 888
888Y88888P888 .d88b. 888 888 888 .d8888b .d88b. 8888b. 888d888 .d8888b 88888b.
888 Y888P 888 d8P Y8b 888 888 888 88K d8P Y8b "88b 888P" d88P" 888 "88b
888 Y8P 888 88888888 888 888 888 "Y8888b. 88888888 .d888888 888 888 888 888
888 " 888 Y8b. 888 888 888 X88 Y8b. 888 888 888 Y88b. 888 888
888 888 "Y8888 888 888 888 88888P' "Y8888 "Y888888 888 "Y8888P 888 888
Config file path: "./config.toml"
如果Config file path
不是 "none"
,则表示已成功找到配置文件并使用它来启动 Meilisearch。
可以使用MEILI_CONFIG_FILE_PATH
环境变量或--config-file-path
CLI 选项来覆盖配置文件的默认位置。
./meilisearch --config-file-path="./config.toml"
配置文件格式
可以使用配置文件配置任何环境变量或 CLI 选项。在配置文件中,选项必须以蛇形命名法 编写。例如,--import-dump
将被写为 import_dump
。
import_dump = "./example.dump"
警告
在配置文件中指定config_file_path
选项将引发错误。这是唯一不能在配置文件中设置的配置选项。
配置云托管实例
要在云托管实例中使用命令行选项配置 Meilisearch,请编辑其服务文件。服务文件的默认位置为 /etc/systemd/system/meilisearch.service
。
要在云托管实例中使用环境变量配置 Meilisearch,请修改 Meilisearch 的 env
文件。它的默认位置为 /var/opt/meilisearch/env
。
编辑完配置选项后,重新启动 Meilisearch 服务。
systemctl restart meilisearch
配置 Meilisearch Cloud
Meilisearch Cloud 提供最佳的预配置环境。在 Meilisearch Cloud 上托管项目时,无需使用此页面中列出的任何配置选项。
所有实例选项
配置文件路径
环境变量: MEILI_CONFIG_FILE_PATH
CLI 选项: --config-file-path
默认值: ./config.toml
预期值: 文件路径
指定在启动时加载的配置文件的位置。
警告
在配置文件本身中指定此选项将引发错误(假设 Meilisearch 能够找到您的配置文件)。
数据库路径
环境变量: MEILI_DB_PATH
CLI 选项: --db-path
默认值: "data.ms/"
预期值: 文件路径
指定将在其中创建和检索数据库文件的位置。
环境
环境变量: MEILI_ENV
CLI 选项: --env
默认值: development
预期值: production
或 development
配置实例的环境。值必须为 production
或 development
之一。
生产
:
开发
:
- 设置主密钥 是可选的。如果未提供主密钥,或主密钥少于 16 字节,Meilisearch 将建议一个安全的自动生成主密钥。
- 搜索预览已启用。
提示
当服务器环境设置为 development
时,提供主密钥不是强制性的。这在调试和原型设计时很有用,但在其他情况下则很危险,因为 API 路由不受保护。
HTTP 地址和端口绑定
环境变量: MEILI_HTTP_ADDR
CLI 选项: --http-addr
默认值: "localhost:7700"
预期值: HTTP 地址和端口
设置 Meilisearch 将使用的 HTTP 地址和端口。
主密钥
环境变量: MEILI_MASTER_KEY
CLI 选项: --master-key
默认值: None
预期值: 至少 16 字节的 UTF-8 字符串
设置实例的主密钥,自动保护除GET /health
之外的所有路由。这意味着您需要一个有效的 API 密钥才能访问所有其他端点。
当 --env
设置为 production
时,提供主密钥是强制性的。如果未提供,或主密钥少于 16 字节,Meilisearch 将引发错误并拒绝启动。
当 --env
设置为 development
时,提供主密钥是可选的。如果未提供,所有路由将不受保护并公开可访问。
如果您未在 production
或 development
环境中提供主密钥,或主密钥少于 16 字节,Meilisearch 将建议一个安全的自动生成主密钥,您可以在重新启动实例时使用。
禁用分析
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_NO_ANALYTICS
CLI 选项: --no-analytics
提供此标志时,将停用 Meilisearch 的内置遥测功能。
Meilisearch 会自动从所有未使用此标志选择退出的实例收集数据。所有收集的数据仅用于改进 Meilisearch,并且可以随时删除。
阅读有关我们数据收集政策的更多信息,或查看我们收集的所有数据点的完整列表。
转储目录
环境变量: MEILI_DUMP_DIR
CLI 选项: --dump-dir
默认值: dumps/
预期值: 指向有效目录的文件路径
设置 Meilisearch 将在其中创建转储文件的目录。
导入转储
环境变量: MEILI_IMPORT_DUMP
CLI 选项: --import-dump
默认值: 无
预期值: 指向 .dump
文件的文件路径
导入位于指定路径的转储文件。路径必须指向 .dump
文件。如果数据库已存在,Meilisearch 将引发错误并中止启动。
Meilisearch 只有在转储数据完全索引后才会启动。所需时间取决于转储文件的大小。
忽略丢失的转储
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_IGNORE_MISSING_DUMP
CLI 选项: --ignore-missing-dump
防止 Meilisearch 在 --import-dump
未指向有效转储文件时引发错误。相反,Meilisearch 将正常启动,不会导入任何转储。
如果未定义 --import-dump
,此选项将触发错误。
如果数据库存在,则忽略转储
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_IGNORE_DUMP_IF_DB_EXISTS
CLI 选项: --ignore-dump-if-db-exists
防止具有现有数据库的 Meilisearch 实例在使用 --import-dump
时引发错误。相反,转储将被忽略,Meilisearch 将使用现有数据库启动。
如果未定义 --import-dump
,此选项将触发错误。
日志级别
环境变量: MEILI_LOG_LEVEL
CLI 选项: --log-level
默认值: 'INFO'
预期值: ERROR
、WARN
、INFO
、DEBUG
、TRACE
或 OFF
之一
定义 Meilisearch 日志中应包含多少详细信息。
Meilisearch 目前支持五个日志级别,按详细程度递增排序列出
'ERROR'
: 仅记录表明 Meilisearch 未按预期运行的意外事件'WARN'
: 记录所有意外事件,无论其严重程度如何'INFO'
: 记录所有事件。这是--log-level
的默认值'DEBUG'
: 记录所有事件,并包含有关 Meilisearch 内部进程的详细信息。在诊断问题和调试时很有用'TRACE'
: 记录所有事件,并包含有关 Meilisearch 内部进程的更多详细信息。我们建议不要使用此级别,因为它非常详细。在考虑'TRACE'
之前,请使用'DEBUG'
。'OFF'
: 禁用日志记录
最大索引内存
环境变量: MEILI_MAX_INDEXING_MEMORY
CLI 选项: --max-indexing-memory
默认值: 可用 RAM 的 2/3
预期值: 整数 (104857600
) 或人类可读的大小 ('100Mb'
)
设置 Meilisearch 在索引时可以使用的最大 RAM 量。默认情况下,Meilisearch 使用不超过可用内存的三分之二。
该值必须以字节表示,或明确声明基本单位:107374182400
、'107.7Gb'
或 '107374 Mb'
。
Meilisearch 可能在索引过程中超出确切的 RAM 限制。在大多数情况下和机器上,这应该是微不足道的,对稳定性和性能几乎没有影响。
危险
将 --max-indexing-memory
设置为大于或等于机器总内存的值可能会导致您的实例崩溃。
最大索引线程
环境变量: MEILI_MAX_INDEXING_THREADS
CLI 选项: --max-indexing-threads
默认值: 可用线程数的一半
预期值: 整数
设置 Meilisearch 在索引过程中可以使用线程的最大数量。默认情况下,索引器避免使用超过机器总处理单元的一半。这样可以确保 Meilisearch 始终准备好执行搜索,即使您正在更新索引。
如果 --max-indexing-threads
高于机器中可用的实际内核数量,Meilisearch 将使用可用的最大内核数量。
在单核机器中,Meilisearch 只能选择使用可用的唯一内核进行索引。这可能会导致在索引期间搜索体验下降。
危险
避免将 --max-indexing-threads
设置为机器处理器内核的总数。虽然这样做可能会加快索引速度,但可能会严重影响搜索体验。
有效负载限制大小
环境变量: MEILI_HTTP_PAYLOAD_SIZE_LIMIT
CLI 选项: --http-payload-size-limit
默认值: 104857600
(~100MB)
预期值: 整数
设置可接受有效负载 的最大大小。值必须以字节表示,或明确声明基本单位。例如,默认值可以写为 107374182400
、'107.7Gb'
或 '107374 Mb'
。
安排快照创建
环境变量: MEILI_SCHEDULE_SNAPSHOT
CLI 选项: --schedule-snapshot
默认值: 如果不存在则禁用,如果存在但没有值则为 86400
预期值: None
或整数
激活计划的快照。快照默认情况下处于禁用状态。
可以使用--schedule-snapshot
而不指定值。 如果在启动实例时存在--schedule-snapshot
但未指定值,Meilisearch 将每 24 小时创建一次快照。
要更好地控制快照调度,请传递一个整数,表示每次快照之间的时间间隔(以秒为单位)。 当--schedule-snapshot=3600
时,Meilisearch 将每小时创建一次快照。
注意
使用配置文件时,也可以显式地将布尔值传递给schedule_snapshot
。 当schedule_snapshot=true
时,Meilisearch 将每 24 小时创建一次快照,而当schedule_snapshot=false
时,Meilisearch 将不会创建快照。
快照目标位置
环境变量: MEILI_SNAPSHOT_DIR
CLI 选项: --snapshot-dir
默认值: snapshots/
预期值: 指向有效目录的文件路径
设置 Meilisearch 存储快照的目录。
导入快照
环境变量: MEILI_IMPORT_SNAPSHOT
CLI 选项: --import-snapshot
默认值: None
预期值: 指向快照文件的路径
在导入指定路径中之前生成的快照后,启动 Meilisearch。
如果以下情况,此命令将抛出错误:
- 数据库已存在
- 在指定的路径中找不到有效的快照
可以使用--ignore-snapshot-if-db-exists
和 --ignore-missing-snapshot
选项分别修改此行为。
忽略丢失的快照
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_IGNORE_MISSING_SNAPSHOT
CLI 选项: --ignore-missing-snapshot
阻止 Meilisearch 实例在--import-snapshot
不指向有效的快照文件时抛出错误。
如果未定义--import-snapshot
,此命令将抛出错误。
如果数据库已存在,则忽略快照
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_IGNORE_SNAPSHOT_IF_DB_EXISTS
CLI 选项: --ignore-snapshot-if-db-exists
阻止具有现有数据库的 Meilisearch 实例在使用--import-snapshot
时抛出错误。 相反,快照将被忽略,Meilisearch 将使用现有数据库启动。
如果未定义--import-snapshot
,此命令将抛出错误。
任务 Webhook URL
环境变量: MEILI_TASK_WEBHOOK_URL
CLI 选项: --task-webhook-url
默认值: None
预期值: URL 字符串
每当 Meilisearch 完成处理任务 或一批任务时,通知配置的 URL。 Meilisearch 使用提供的 URL,保留任何指定的查询参数。
Webhook 有效负载包含以 ndjson 格式完成的任务列表。 有关更多信息,请查阅专门的任务 Webhook 指南。
任务 Webhook 授权标头
环境变量: MEILI_TASK_AUTHORIZATION_HEADER
CLI 选项: --task-webhook-authorization-header
默认值: None
预期值: 身份验证令牌字符串
在通知Webhook URL 时,在授权标头中包含身份验证令牌。
SSL 选项
SSL 身份验证路径
环境变量: MEILI_SSL_AUTH_PATH
CLI 选项: --ssl-auth-path
默认值: None
预期值: 文件路径
在指定的路径中启用客户端身份验证。
SSL 证书路径
环境变量: MEILI_SSL_CERT_PATH
CLI 选项: --ssl-cert-path
默认值: None
预期值: 指向有效 SSL 证书的路径
设置服务器的 SSL 证书。
值必须是 PEM 格式证书的路径。 第一个证书应认证--ssl-key-path
提供的 KEYFILE。 最后一个证书应是根 CA。
SSL 密钥路径
环境变量: MEILI_SSL_KEY_PATH
CLI 选项: --ssl-key-path
默认值: None
预期值: 指向有效 SSL 密钥文件的路径
设置服务器的 SSL 密钥文件。
值必须是 PEM 格式的 RSA 私钥或 PKCS8 编码的私钥的路径。
SSL OCSP 路径
环境变量: MEILI_SSL_OCSP_PATH
CLI 选项: --ssl-ocsp-path
默认值: None
预期值: 指向有效 OCSP 证书的路径
设置服务器的 OCSP 文件。 可选
从 OCSPFILE 中读取 DER 编码的 OCSP 响应,并将其固定到证书。
SSL 需要身份验证
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_SSL_REQUIRE_AUTH
CLI 选项: --ssl-require-auth
默认值: None
使 SSL 身份验证成为强制性。
如果客户端未完成客户端身份验证,则发送致命警报。
SSL 恢复
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_SSL_RESUMPTION
CLI 选项: --ssl-resumption
默认值: None
激活 SSL 会话恢复。
SSL 票证
警告
🚩 此选项不接受任何值。分配值将引发错误。🚩
环境变量: MEILI_SSL_TICKETS
CLI 选项: --ssl-tickets
默认值: None
激活 SSL 票证。