MeiliSearch配置

可以使用环境变量和命令行选项配置 Meilisearch。

这里描述的配置选项会影响整个 Meilisearch 实例,而不仅仅是单个索引。有关索引设置,请阅读索引设置

使用命令行选项配置实例

在启动 Meilisearch 实例时传递命令行选项及其各自的值。

./meilisearch --db-path ./meilifiles --http-addr '127.0.0.1:7700'

如上示例中 ./meilisearch 是启动 Meilisearch 实例的命令,--http-addr 是设置此实例将使用的 URL 和端口的选项。所有命令行选项的前缀都是 -- 。

使用环境变量配置实例

为了使用环境变量配置 Meilisearch 实例,你必须在启动实例之前设置环境变量。

环境变量始终与相应的命令行选项相同,但前缀为 MEILI _,全部以大写写入。有些选项(例如 --import-snapshots)不能作为环境变量使用。

export MEILI_DB_PATH=./meilifiles
export MEILI_HTTP_ADDR=127.0.0.1:7700
./meilisearch

使用

命令行选项优先于环境变量。如果同一个配置选项同时指定为命令行选项和环境变量选项,则 Meilisearch 将使用命令行选项及其各自的值。

所有配置选项都必须指定一个值。使用命令行选项或者不指定值的环境变量将抛出错误并中断启动过程。

# 例如这样启动就会报错
./meilisearch --schedule-snapshot

error: The argument '--schedule-snapshot <schedule-snapshot>' requires a value but none was supplied

配置选项

常用配置


数据库路径

  • 环境变量: MEILI_DB_PATH
  • 命令行: --db-path
  • 默认值: "data.ms/"
  • 期望值: 文件路径
  • 描述: 指定创建和检索数据库文件的位置

环境

  • 环境变量: MEILI_ENV
  • 命令行: --env
  • 默认值: development
  • 期望值: production / development
  • 描述: 配置实例的环境。值必须是production或development

production:

  • 必须设置主秘钥
  • 搜索预览界面是禁用的

development:

  • 设置主秘钥是可选的。
  • 搜索预览界面是开启的

当服务器环境设置为开发时,提供主密钥不是强制性的。这在调试和原型设计时很有用,但是这样操作会很危险,因为 API 不受保护。


Http地址和端口绑定

  • 环境变量: MEILI_HTTP_ADDR
  • 命令行: --http-addr
  • 默认值: "127.0.0.1:7700"
  • 期望值: 一个http地址和端口
  • 描述: 设置 Meilisearch 将使用的 HTTP 地址和端口

主秘钥

  • 环境变量: MEILI_MASTER_KEY
  • 命令行: --master-key
  • 默认值: None
  • 期望值: 字符串
  • 描述: 设置实例的主密钥,自动保护除 GET /health 之外的所有api。这意味着您将需要一个 API 来访问MeiliSearch,如 POST /search 和 GET /documents.

当 -- env 设置为 production 时,提供主密钥是必需的; 如果没有提供主密钥,则 MeiliSearch 将抛出错误并拒绝启动。

如果在开发环境中没有提供主密钥,则所有API路由都将不受保护并可公开访问。

高级配置


禁用分析

  • 环境变量: MEILI_NO_ANALYTICS
  • 命令行: --no-analytics
  • 默认值: false
  • 期望值: true/false
  • 描述: MeiliSearch自动收集所有不使用此标志的实例的数据。所有收集的数据仅用于改进数据搜索,可随时删除。

Dump备份


Dumps 备份目录
  • 环境变量: MEILI_DUMPS_DIR
  • 命令行: --dumps-dir
  • 默认值: dumps/
  • 期望值: 有效目录的文件路径
  • 描述: 设置 Meilisearch 的dump备份目录

导入dump备份数据
  • 环境变量: N/A
  • 命令行: --import-dump
  • 默认值: none
  • 期望值: 指向 dump 文件的文件路径
  • 描述: 导入位于指定路径的备份文件。路径必须指向 dump 目录文件。只有在转储数据被完全编入索引后,meilisesearch 才会启动。需要的时间取决于dump文件的大小。这个选项不能作为环境变量

日志级别

  • 环境变量: MEILI_LOG_LEVEL
  • 命令行: --log-level
  • 默认值: 'INFO'
  • 期望值: ERROR, WARN, INFO, DEBUG, 或者 TRACE

定义了 Meilisearch 的日志级别。

Meilisearch 目前支持四个日志级别,依次是:

  • ERROR: 只记录error事件,表明 Meilisearch 的运行出现了错误
  • WARN: 记录所有意外事件,不管它们的严重程度
  • INFO: 记录所有事件。这是默认值 -- log-level
  • DEBUG: 记录所有事件,包括关于 Meilisearch 内部流程的详细信息。在诊断问题和调试时很有用
  • TRACE: 记录所有的事件,包括更详细的信息,关于 meilisesearch 的内部流程。我们不建议使用这个级别,因为它非常冗长。在考虑跟踪之前使用 DEBUG

最大索引大小

  • 环境变量: MEILI_MAX_INDEX_SIZE
  • 命令行: --max-index-size
  • 默认值: 107374182400 (100 GiB)
  • 期望值: Interger类型
  • 描述: 设置索引的最大大小。值必须以字节为单位给出,或者显式声明基本单元。例如,默认值可以写为 107374182400、107.7 Gb 或 107374 Mb

索引存储已处理的数据,与处理挂起的任务的任务数据库不同。

最大 TASK_DB 大小

  • 环境变量: MEILI_MAX_TASK_DB_SIZE
  • 命令行: --max-task-db-size
  • 默认值: 107374182400 (100 GiB)
  • 期望值: Interger类型
  • 描述: 设置任务数据库的最大大小。值必须以字节为单位给出,或者显式声明基本单元。例如,默认值可以写为107374182400、’107.7 Gb’或’107374 Mb’

任务数据库处理挂起的任务。这与索引数据库不同,索引数据库只存储已处理的数据。

有效载荷限制大小

  • 环境变量: MEILI_HTTP_PAYLOAD_SIZE_LIMIT
  • 命令行: --http-payload-size-limit
  • 默认值: 104857600 (~100MB)
  • 期望值: Interger类型
  • 描述: 设置可接受的有效载荷的最大大小。值必须以字节为单位给出,或者显式声明基本单元。例如,默认值可以写为107374182400、’107.7 Gb’或’107374 Mb’

快照


快照创建调度
  • 环境变量: MEILI_SCHEDULE_SNAPSHOT
  • 命令行: --schedule-snapshot
  • 默认值: false
  • 期望值: true/false
  • 描述: 当设置为 true 时激活计划的快照。快照默认是禁用的

快照存储地址
  • 环境变量: MEILI_SNAPSHOT_DIR
  • 命令行: --snapshot-dir
  • 默认值: snapshots/
  • 期望值: 有效的文件路径
  • 描述: 设置 Meilisearch 将存储快照的目录

快照间隔
  • 环境变量: MEILI_SNAPSHOT_INTERVAL_SEC
  • 命令行: --snapshot-interval-sec
  • 默认值: 86400 (1 天)
  • 期望值: Interger类型
  • 描述: 定义每个快照之间的间隔。值必须以秒为单位给出。

导入快照
  • 环境变量: N/A
  • 命令行: --import-snapshot
  • 默认值: None
  • 期望值: 指向快照文件的文件路径

在给定文件路径上导入以前生成的快照后启动 Meilisearch。

这个命令可能抛出如下错误:

  • 数据库已经存在
  • 在指定路径中找不到有效的快照

可以分别使用 --ignore-snapshot-if-db-exists 和 --ignore-missing-snapshot 选项修改此行为

这个选项不能作为环境变量。


忽略错误的快照
  • 环境变量: N/A
  • 命令行: --ignore-missing-snapsho
  • 默认值: false
  • 期望值: true/false
  • 描述: 当 -- import-snapshot 不指向有效的快照文件时,防止 Meilisearch 实例抛出错误。

如果 -- import-snapshot 没有定义,该命令将抛出一个错误。

这个选项不能作为环境变量


如果存在 DB,则忽略快照
  • 环境变量: N/A
  • 命令行: --ignore-snapshot-if-db-exists
  • 默认值: false
  • 期望值: true/false
  • 描述: 防止具有现有数据库的 Meilisearch 实例在使用 --import-snapshot 时抛出错误。相反,快照将被忽略,而 meilisesearch 将使用现有的数据库启动

如果 --import-snapshot 没有定义,该命令将抛出一个错误

这个选项不能作为环境变量

SSL配置


SSL 身份验证路径
  • 环境变量: MEILI_SSL_AUTH_PATH
  • 命令行: --ssl-auth-path
  • 默认值: None
  • 期望值: 文件路径
  • 描述: 在指定路径中启用客户端身份验证

SSL证书路径
  • 环境变量: MEILI_SSL_CERT_PATH
  • 命令行: --ssl-cert-path
  • 默认值: None
  • 期望值: 指向有效 SSL 证书的文件路径
  • 描述: 设置服务器的 SSL 证书。

值必须是指向 pem- 格式证书的路径。第一个证书应该验证 -- ssl-key-path 提供的 KEYFILE。最后一个证书应该是根 CA


SSL 密钥路径
  • 环境变量: MEILI_SSL_KEY_PATH
  • 命令行: --ssl-key-path
  • 默认值: None
  • 期望值: 指向有效 SSL 密钥文件的文件路径
  • 描述: 设置服务器的 SSL 密钥文件,值必须是 RSA 私钥或 pkcs8编码的私钥的路径,两者都是 PEM 格式。

SSL OCSP 路径
  • 环境变量: MEILI_SSL_OCSP_PATH
  • 命令行: --ssl-ocsp-path
  • 默认值: None
  • 期望值: 指向有效 OCSP 证书的文件路径
  • 描述: 设置服务器的 OCSP 文件。

SSL require auth
  • 环境变量: MEILI_SSL_REQUIRE_AUTH
  • 命令行: --ssl-require-auth
  • 默认值: None
  • 描述: 强制使用 SSL 身份验证。如果客户端未完成客户端身份验证,则发送致命警报。

SSL resumption
  • 环境变量: MEILI_SSL_RESUMPTION
  • 命令行: --ssl-resumption
  • 默认值: None
  • 描述: 激活 SSL 会话恢复。

SSL tickets
  • 环境变量: MEILI_SSL_TICKETS
  • 命令行: --ssl-tickets
  • 默认值: None
  • 描述: 激活 SSL tickets