啟動時設定 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_PATHMEILI_HTTP_ADDR 是修改此執行個體行為的環境變數。

    命令列旗標的環境變數接受 nnoffalseoff0 作為 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"
    

    如果「設定檔路徑」不是 "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
    預期值productiondevelopment

    設定執行個體的環境。值必須是 productiondevelopment

    production:

    development:

    提示

    當伺服器環境設定為 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 時,提供主金鑰是可選的。如果沒有提供主金鑰,所有路由將不受保護並可公開存取。

    如果您在 productiondevelopment 環境中未提供主金鑰,或主金鑰少於 16 個位元組,Meilisearch 將會建議您使用安全的自動產生主金鑰,您可以在重新啟動執行個體時使用。

    進一步了解 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'
    預期值ERRORWARNINFODEBUGTRACEOFF 其中之一

    定義 Meilisearch 記錄中應呈現多少詳細資訊。

    Meilisearch 目前支援五個記錄層級,按詳細程度遞增順序列出

    自訂日誌輸出 實驗性

    環境變數MEILI_LOGS_MODE
    CLI 選項--experimental-logs-mode
    預設值'human'
    預期值humanjson 其中之一

    定義日誌應該輸出人類可讀的文字還是 JSON 資料。

    最大索引記憶體

    環境變數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_EXPERIMENTAL_REDUCE_INDEXING_MEMORY_USAGE
    CLI 選項--experimental-reduce-indexing-memory-usage
    預設值None

    啟用 LMDB 選項 MDB_WRITEMAP。啟用此選項可能會在某些 UNIX 和類 UNIX 設定中減少 RAM 使用量。但是,它也可能對寫入速度和整體效能產生負面影響。

    最大索引執行緒數

    環境變數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_EXPERIMENTAL_SEARCH_QUEUE_SIZE
    CLI 選項--experimental-search-queue-size
    預設值1000
    預期值:整數

    設定同時搜尋請求的最大數量。預設情況下,Meilisearch 在任何給定時刻最多會將 1000 個搜尋請求加入佇列。此限制的存在是為了防止 Meilisearch 消耗無限量的 RAM。

    排程快照建立

    環境變數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 時,則不建立任何快照。

    深入了解快照.

    快照目的地

    環境變數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

    防止使用 --import-snapshot 時,已存在資料庫的 Meilisearch 執行個體拋出錯誤。相反,快照將被忽略,並且 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_WEBHOOK_AUTHORIZATION_HEADER
    CLI 選項--task-webhook-authorization-header
    預設值None
    預期值:驗證權杖字串

    在通知webhook URL時,在授權標頭中包含驗證權杖。

    最大批次處理任務數 實驗性

    環境變數MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS
    CLI 選項--experimental-max-number-of-batched-tasks
    預設值None
    預期值:整數

    限制 Meilisearch 在單一批次中執行的任務數。可能會提高處理大量資源密集型任務佇列之系統的穩定性。

    複寫參數 實驗性

    警告

    🚩 此選項不接受任何值。賦予值將會拋出錯誤。🚩

    環境變數MEILI_EXPERIMENTAL_REPLICATION_PARAMETERS
    CLI 選項--experimental-replication-parameters
    預設值None

    協助在叢集環境中執行 Meilisearch。它透過三種方式修改任務處理來實現此目的

    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 金鑰檔案。

    值必須是 RSA 私密金鑰或 PKCS8 編碼的私密金鑰的路徑,兩者皆為 PEM 格式。

    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 票證。