前言

对于许多开发者和项目团队而言,快速实现高效搜索功能是一个常见需求。MeiliSearch 作为一款用 Rust 编写的开源搜索引擎,以其轻量级、易用性和出色的性能受到了广泛关注。与 Elasticsearch 等传统解决方案相比,MeiliSearch 更加轻量,学习曲线平缓,且开箱即支持中文分词,非常适合中小规模数据量的项目使用。

本教程将手把手教你在 Linux 系统上从零开始部署 MeiliSearch,即使你是零基础的初学者,也能轻松跟随完成。我们将涵盖两种主流的安装方式,以及配置、验证和基本使用的完整流程。


1 准备工作:

准备一台具备公网IP的云服务器(推荐使用雨云)

优惠注册地址:https://www.rainyun.com/sn_

使用优惠码:sn

注: 使用优惠码注册后绑定微信可领取5折优惠券

服务器选购步骤:

  1. 注册后,在"总览"页面找到"云服务器"入口,进入后点击"购买云服务器"

2.根据需求选择合适的配置,建议选择国内的服务器,访问更快,选好后点击立即购买即可

3.选好后进入控制台,使用SSH客户端远程连接服务器即可,SSH客户端建议选择FinalShell

2 安装 MeiliSearch

在 Linux 系统上,我们主要有两种安装 MeiliSearch 的方式:直接二进制安装和使用 Docker 安装。你可以根据自身需求选择其中一种。

2.1 方法一:直接二进制安装

这是最快捷的安装方式,特别适合快速体验和测试环境。

  1. 打开终端,进入合适的安装目录,例如 /usr/local/bin

bash

cd /usr/local/bin

执行一键安装脚本

bash

curl -L https://install.meilisearch.com | sh

此命令会自动下载适用于你系统架构的最新版 MeiliSearch 二进制文件。

  • 移动可执行文件(可选,但建议):
    安装脚本完成后,会将可执行文件留在当前目录。为了系统管理方便,建议将其移动到系统命令目录:

bash

sudo mv ./meilisearch /usr/bin/

2.2 方法二:使用 Docker 安装

如果你的系统已经安装了 Docker,使用容器部署可以更好地实现环境隔离,便于后续管理。

  1. 拉取最新镜像

bash

docker pull getmeili/meilisearch:latest

启动 MeiliSearch 容器

bash

docker run -d --name meilisearch \
  -p 7700:7700 \
  -v /path/on/your/host:/meili_data \
  getmeili/meilisearch:latest

参数说明

  • -d:后台运行容器。

  • --name:为容器指定一个名称。

  • -p 7700:7700:将容器的 7700 端口映射到主机的 7700 端口。

  • -v:挂载数据卷,将容器内数据持久化到主机,防止容器删除后数据丢失。请将 /path/on/your/host 替换为你主机上的实际路径。

3 配置与运行

3.1 初始配置

首次启动时,尤其是在生产环境中,强烈建议设置主密钥(Master Key)来保护你的搜索服务。

  1. 创建配置文件
    /etc/ 目录下下载并创建初始配置文件:

bash

cd /etc/
sudo curl https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml > meilisearch.toml

编辑配置文件
使用文本编辑器(如 nanovim)打开 meilisearch.toml,修改关键配置:

toml

env = "production"  # 设置为生产环境
master_key = "your_master_key_here"  # 设置一个至少16位的主密钥,请务必自定义
db_path = "/var/lib/meilisearch/data"  # 数据库存放路径
dump_dir = "/var/lib/meilisearch/dumps"  # 转储文件目录
snapshot_dir = "/var/lib/meilisearch/snapshots"  # 快照目录

注意master_key 是你访问 MeiliSearch API 的超级密钥,一旦丢失,将无法恢复,请妥善保管。

3.2 以服务方式运行

对于生产环境,将 MeiliSearch 配置为系统服务(systemd)可以确保它一直在后台稳定运行,并且开机自启。

  1. 创建服务文件
    创建文件 /etc/systemd/system/meilisearch.service 并输入以下内容:

ini

[Unit]
Description=Meilisearch
After=systemd-user-sessions.service

[Service]
Type=simple
WorkingDirectory=/var/lib/meilisearch
ExecStart=/usr/bin/meilisearch --config-file-path /etc/meilisearch.toml

[Install]
WantedBy=multi-user.target
  • 如果使用自定义路径,请确保调整 WorkingDirectoryExecStart 中的路径。

  • 创建数据目录并授权

bash

sudo mkdir -p /var/lib/meilisearch
sudo chown -R $USER:$USER /var/lib/meilisearch  # 将$USER替换为你的用户名,或者使用合适的系统用户

启用并启动服务

bash

sudo systemctl daemon-reload          # 重新加载服务配置
sudo systemctl enable meilisearch     # 设置开机自启
sudo systemctl start meilisearch      # 立即启动服务

4 验证安装

完成安装和启动后,需要确认 MeiliSearch 是否正常运行。

  1. 检查服务状态

bash

sudo systemctl status meilisearch
  • 如果看到 active (running) 的提示,说明服务已成功启动。

  • 使用 curl 测试
    在终端执行:

bash

curl http://localhost:7700

如果返回包含 "pagination": null 等信息的 JSON 数据,则说明服务运行正常。

  • 访问 Web 界面
    打开浏览器,访问 http://你的服务器IP:7700。如果能看到 MeiliSearch 的 Web 调试界面,则证明安装成功。

5 基本使用示例

下面我们通过一个简单的例子,演示如何使用 MeiliSearch 进行数据搜索。

  1. 使用 Python 添加文档
    MeiliSearch 提供了多语言 SDK,这里以 Python 为例。首先安装 Python SDK:

bash

pip install meilisearch

然后创建 Python 脚本 test_meilisearch.py

python

# 执行搜索
search_results = index.search('三体')
print("搜索结果:", search_results)

搜索数据
在上面的 Python 脚本中继续添加代码,或新建一个脚本:

python

# 执行搜索
search_results = index.search('三体')
print("搜索结果:", search_results)

运行脚本,你将看到包含关键词"三体"的搜索结果。

6 故障排查

如果在部署过程中遇到问题,可以尝试以下排查步骤:

  • 检查端口占用:确保 7700 端口没有被其他程序占用。

bash

sudo netstat -tulnp | grep 7700

查看服务日志

bash

sudo journalctl -u meilisearch -f

连接被拒绝问题:如果遇到 Failed to connect to localhost port 7700 

  • 通常是因为 MeiliSearch 服务没有成功启动。请确认:

    1. 配置文件路径正确。

    2. 数据目录有正确的读写权限。

    3. 主密钥配置正确(如果设置了的话)。


希望通过这篇教程,你已经成功在 Linux 系统上部署了 MeiliSearch,并完成了初步的配置和测试。MeiliSearch 的强大之处在于它的简洁与高效,让它成为中小型项目实现搜索功能的一个绝佳选择。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐