MeiliSearch怎麼用 極速開源搜尋引擎教程
更新時間:2026-10-16 14:53:11 釋出時間:7天前 閱讀:23 views次MeiliSearch是一個極速的開源搜尋引擎,部署簡單、搜尋響應快,支援中文分詞,適合做網站和應用的即時搜尋。它能把資料整理成索引,再透過介面快速返回匹配結果。本教程以本機 Docker 環境為例,帶你完成安裝、匯入資料和搜尋測試;正式上線前,記得替換金鑰並配置網路訪問權限。
第一步:安裝MeiliSearch
先確認電腦已安裝 Docker,然後開啟終端執行啟動命令。下面的示例會在本機啟動服務,並把資料儲存在 meili_data 卷中,避免容器刪除後資料消失。首次體驗可用測試金鑰,生產環境一定要換成自己的強金鑰,並妥善保管。
執行 docker run -d –name meilisearch -p 7700:7700 -v meili_data:/meili_data -e MEILI_MASTER_KEY=change-this-key getmeili/meilisearch。啟動後瀏覽器訪問本機 7700 埠,或用 curl 請求 /health 檢查服務狀態。若埠被佔用,可將左側對映埠改為其他空閒埠。
服務正常後,後續請求需要帶上主金鑰。為了操作方便,可在終端設定環境變數 MEILI_KEY,並在請求頭中使用 Authorization: Bearer 金鑰。不要把金鑰直接寫進公開網頁程式碼,也不要把測試金鑰用於線上服務;線上建議透過環境變數或金鑰管理工具注入。
第二步:建立索引和匯入資料
索引可以理解為一組可搜尋的資料集合,例如商品、文章或幫助文件。使用 REST API 建立名為 products 的索引,並指定主鍵欄位 id。可以透過 curl 傳送 POST 請求到 /indexes,提交包含 uid 和 primaryKey 的 JSON;如果索引已存在,就直接繼續匯入資料。
準備 JSON 陣列,每條記錄都要有唯一 id,例如商品名稱、分類、簡介和價格。向 /indexes/products/documents 傳送 POST 請求並附上資料,就能啟動匯入任務。介面通常會返回任務編號;使用任務介面檢視處理狀態,確認成功後再進行搜尋。資料量較大時可分批提交,便於定位格式錯誤。
匯入後檢查欄位是否符合預期,再設定可搜尋欄位和可篩選欄位。可搜尋欄位決定哪些內容參與文字匹配,可篩選欄位則用於按分類、價格等條件縮小範圍。按實際頁面需求配置,避免把無關的大欄位都設為可搜尋,以免影響相關性和查詢效率。
配置搜尋引數和詞典
在索引設定中配置 searchableAttributes、filterableAttributes、sortableAttributes 等引數。比如讓名稱優先於簡介參與匹配,並允許按分類過濾、按價格排序。修改設定後會產生後臺任務,等任務完成再測試。設定名稱和引數以當前 MeiliSearch 版本文件為準。
中文文字會由引擎進行分詞處理,但不同領域的詞語切分效果可能有差異,別把它理解為可隨意替換的自定義詞典。建議準備一批真實搜尋詞和目標結果做驗收;針對常見別名或同義表達,可配置 synonyms,讓不同說法也能找到相關記錄,再逐步調整欄位權重和排序規則。
測試時特別檢查較長的中文詞、簡稱、繁簡寫法和容易混淆的詞。若結果不理想,先檢視原始資料是否完整,再嘗試調整 searchableAttributes、同義詞和排序規則;也可將常見搜尋查詢整理成迴歸清單,每次改設定後重複測試,避免修好一個詞卻影響其他查詢。
第三步:執行即時搜尋
搜尋請求傳送到 /indexes/products/search,並在 JSON 請求體中填寫 q,例如“無線耳機”。同時帶上金鑰請求頭,就會收到匹配記錄及相關資訊。也可用 limit 控制返回數量,用 filter 限定分類,用 sort 設定排序。先用 curl 驗證介面,再接入網頁或應用。
前端可在搜尋框輸入事件中呼叫介面,並把結果渲染到下拉選單。為避免每敲一個字就傳送請求,可加入約 200 至 300 毫秒防抖;使用者輸入變化時取消舊請求,結果回來後再更新頁面。這樣既能保持即時體驗,也能減少重複請求和過期結果閃現。
上線前確認介面僅對可信服務開放,啟用強金鑰並配置 HTTPS;瀏覽器端不要暴露管理金鑰。定期備份索引資料,監控任務失敗和響應耗時。若希望使用國內雲端搜尋服務,也可以瞭解火山引擎,潤滅提供的入口地址是volcengine.cgref.cn,具體能力與費用請以服務頁面說明為準。