背景
Halo 从 2.0 版本开始支持了全文搜索功能,自带的 Lucene 搜索引擎在轻度使用场景下可以满足需求,但在重度依赖搜索功能的场景下,可能在搜索速度和用户体验上存在不足,这时我们会更推荐使用独立的搜索引擎。Meilisearch的社区版是免费安装使用的。
https://www.meilisearch.com/docs/resources/self_hosting/getting_started/install_locally
Docker Compose 独立编排部署
sudo -i
mkdir -p /root/data/docker_data/meili
cd /root/data/docker_data/meili
nano docker-compose.ymlservices:
meilisearch:
image: getmeili/meilisearch:v1.19.1
restart: unless-stopped
ports:
- "7700:7700"
environment:
- MEILI_ENV=production
- MEILI_MASTER_KEY=dyxDFRXX9KXzJ18COhD6I67LwjnC1QC1B3fmmGz7v8ygyv0c
volumes:
- ./meilisearch_data:/meili_data
volumes:
meilisearch_data:
driver: local其中,MEILI_MASTER为用户自定义,可以使用以下命令生成:
openssl rand -base64 36docker compose up -dHalo安装插件
在Halo应用市场搜索安装“Meilisearch 搜索引擎”
之前 Halo 社区中已经有人开发了 Meilisearch 插件,但已不再维护(有内存爆炸问题),这里选择使用 Halo 官方提供的插件。

Halo配置插件
进入插件设置,配置 Meilisearch 服务地址 和 Master Key。索引名称 可以选择使用默认的
halo或者自定义(如果你的 Meilisearch 服务会被多个项目使用,建议自定义索引名称)。主密钥与YAML配置文件中的保持一致。
注意:服务地址的ip填写docker的ip地址,不要填写127.0.0.1或localhost

进入插件扩展配置,在 扩展点定义 中选择 搜索引擎,然后选择使用 Meilisearch。

数据概览
配置完插件后,我们可以进入插件的 数据概览 页面,查看 Meilisearch 的索引数据。
如果页面显示不正常一般是ip配置有问题,对于阿里云等国内云服务商来说,不需要在防火墙放行7700端口。
如果页面显示正常,但是没有数据,点击重建索引
一般meili会占用几十兆内存

注意
如果配置完 Meilisearch 插件之后无法搜索,可以尝试重建一次索引。
安装 Meilisearch 插件之后仍然需要
https://www.halo.run/store/apps/app-DlacW 插件,Meilisearch 插件仅仅是提供服务,不会提供 UI。Halo的文章内容设为“私有”时,无法检索出来。