MeiliSearch

MeiliSearch

MeiliSearch

在 Ubuntu 系统中部署和使用 MeiliSearch 是一个高效的选择,MeiliSearch 是轻量级、高性能的开源搜索引擎,支持全文检索、实时索引、中文分词(需额外配置)等特性。以下是完整的部署、配置和使用指南

一、环境准备

确保 Ubuntu 系统已更新并安装依赖:

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装必要依赖(如 curl、unzip)
sudo apt install -y curl unzip wget

二、安装 MeiliSearch

方式 1:快速安装(推荐)

通过官方脚本一键安装(自动适配系统架构):

curl -L https://install.meilisearch.com | sh
方式 2:手动下载(可选,指定版本)
# 下载最新版本(替换版本号为需要的,如 v1.7.0)
MEILI_VERSION="v1.29.0"
curl -O -L "https://github.com/meilisearch/meilisearch/releases/download/${MEILI_VERSION}/meilisearch-linux-amd64"

# 解压并赋予执行权限
chmod +x meilisearch-linux-amd64

# 移动到系统可执行目录(方便全局调用)
sudo mv meilisearch-linux-amd64 /usr/local/bin/meilisearch
验证安装
meilisearch --version
# 输出类似:meilisearch 1.29.0

三、启动 MeiliSearch

1. 临时启动(测试用)
# 直接启动(默认端口 7700,无密钥,仅本地访问)
meilisearch
  • 访问地址:http://localhost:7700
  • 注意:临时启动无密钥,重启后数据丢失,仅用于测试。
2. 生产环境启动(推荐)

生产环境需配置主密钥数据持久化允许外部访问

# 设置主密钥(自定义,用于鉴权)
export MEILI_MASTER_KEY="你的安全密钥(如:MyStrongMasterKey123!)"

# 启动(指定数据存储目录、允许外部访问、后台运行)
meilisearch \
  --db-path /var/lib/meilisearch \  # 数据持久化目录
  --http-addr 0.0.0.0:7700 \       # 允许外部访问(所有IP)
  --env production \                # 生产环境模式
  > /var/log/meilisearch.log 2>&1 & # 日志输出到文件,后台运行
3. 配置系统服务(开机自启)

为了保证 MeiliSearch 稳定运行并开机自启,创建 systemd 服务:

# 创建数据目录和日志目录
sudo mkdir -p /var/lib/meilisearch /var/log/meilisearch
sudo chown $USER:$USER /var/lib/meilisearch /var/log/meilisearch

# 创建服务文件
sudo vim /etc/systemd/system/meilisearch.service

粘贴以下内容(替换 MEILI_MASTER_KEY 为你的密钥):

[Unit]
Description=MeiliSearch
After=network.target

[Service]
Type=simple
User=root
Group=root
Environment="MEILI_MASTER_KEY=MyStrongMasterKey123!"
ExecStart=/usr/local/bin/meilisearch \
  --db-path /var/lib/meilisearch \
  --http-addr 0.0.0.0:7700 \
  --env production
Restart=on-failure
RestartSec=5s
StandardOutput=append:/var/log/meilisearch.log
StandardError=append:/var/log/meilisearch.log

[Install]
WantedBy=multi-user.target

保存并退出,然后启动服务:

# 重新加载 systemd
sudo systemctl daemon-reload

# 启动服务
sudo systemctl start meilisearch

# 设置开机自启
sudo systemctl enable meilisearch

# 查看状态
sudo systemctl status meilisearch

四、基本使用(API/控制台)

1. 访问 Web 控制台

启动后,访问 http://你的服务器IP:7700,输入主密钥即可进入可视化控制台,支持索引管理、数据导入、搜索测试等。

2. API 操作示例(curl)
(1)创建索引
curl \
  -X POST 'http://localhost:7700/indexes' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer 你的主密钥" \
  -d '{
    "uid": "books",
    "primaryKey": "id"
  }'
(2)添加文档
curl \
  -X POST 'http://localhost:7700/indexes/books/documents' \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer 你的主密钥" \
  -d '[
    {
      "id": 1,
      "title": "Ubuntu 实战指南",
      "author": "张三",
      "content": "Ubuntu 系统管理、部署、优化全攻略"
    },
    {
      "id": 2,
      "title": "MeiliSearch 中文使用教程",
      "author": "李四",
      "content": "轻量级搜索引擎 MeiliSearch 快速上手"
    }
  ]'
(3)搜索文档
curl \
  -X GET 'http://localhost:7700/indexes/books/search?q=Ubuntu' \
  -H "Authorization: Bearer 你的主密钥"

五、中文分词支持

MeiliSearch 默认对中文分词支持有限,需安装中文分词插件(基于 jieba):

1. 安装插件依赖
# 安装 Python 和 pip
sudo apt install -y python3 python3-pip

# 安装 jieba 分词库
pip3 install jieba meilisearch-python
2. 使用 Python 脚本处理中文索引

示例脚本(meili_cn_tokenizer.py):

import jieba
from meilisearch import Client

# 初始化客户端
client = Client('http://localhost:7700', '你的主密钥')

# 获取索引
index = client.index('books')

# 配置中文分词(自定义分词器)
index.update_settings({
  "tokenizer": {
    "locale": "zh",
    "custom": {
      "zh": lambda text: list(jieba.cut(text))
    }
  }
})

# 重新添加文档(让分词生效)
documents = [
  {"id": 1, "title": "Ubuntu 实战指南", "author": "张三", "content": "Ubuntu 系统管理、部署、优化全攻略"},
  {"id": 2, "title": "MeiliSearch 中文使用教程", "author": "李四", "content": "轻量级搜索引擎 MeiliSearch 快速上手"}
]
index.add_documents(documents)

运行脚本:

python3 meili_cn_tokenizer.py

六、常见问题排查

  1. 端口无法访问:检查防火墙/安全组是否开放 7700 端口:
    # Ubuntu 防火墙开放 7700 端口
    sudo ufw allow 7700/tcp
    sudo ufw reload
    
  2. 数据丢失:确认启动时指定了 --db-path,且目录权限正确。
  3. 权限错误:确保运行 MeiliSearch 的用户对数据目录有读写权限。

七、停止/卸载 MeiliSearch

1. 停止服务
sudo systemctl stop meilisearch
2. 卸载
# 移除二进制文件
sudo rm /usr/local/bin/meilisearch

# 移除服务文件
sudo rm /etc/systemd/system/meilisearch.service
sudo systemctl daemon-reload

# 移除数据和日志(可选)
sudo rm -rf /var/lib/meilisearch /var/log/meilisearch.log

以上就是 Ubuntu 系统中 MeiliSearch 的完整部署和使用指南,如需更复杂的配置(如集群、HTTPS、自定义分词),可参考 MeiliSearch 官方文档

### MeiliSearch 入门教程 #### 安装 MeiliSearch 对于希望尝试 MeiliSearch 的用户来说,安装过程非常简便。仅需通过命令行工具即可完成安装操作[^3]。 ```bash curl -L https://install.meilisearch.com | sh ``` 此脚本会自动检测操作系统并下载适合的二进制文件来启动 MeiliSearch 实例。如果偏好图形界面或者特定平台上的其他安装方法,则可以在官方文档中找到详细的指引[^1]。 #### 添加文档到索引 一旦成功运行了 MeiliSearch 服务器,下一步就是创建索引来存储待搜索的数据集。每条记录应当被构造成 JSON 对象的形式上传给 API 接口: ```json [ { "id": 1, "title": "The Picture of Dorian Gray", "author": "Oscar Wilde" }, ... ] ``` 这些对象可通过 HTTP POST 请求发送至 `/indexes/{index_uid}/documents` 路径下以批量导入的方式加入指定索引之中。 #### 进行首次查询请求 当已有数据存入索引后便能够立即发起简单的关键词匹配查找。利用 GET 方法向 `/indexes/{index_uid}/search?q={query}` 发送带有参数 q= 查询字符串的 URL 即可获取满足条件的结果列表。 例如想要检索所有标题中含有 “Dorian” 字样的书籍,可以构造如下形式的调用语句: ```http GET /indexes/books/search?q=Dorian Host: http://localhost:7700/ Authorization: Bearer masterKey ``` 以上便是针对初次接触者的简易引导流程概述;而对于寻求深入理解的朋友而言,《MeiliSearch 深度指南》提供了更为详尽的技术细节说明[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李昊哲小课

桃李不言下自成蹊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值