SuiteSearch

/ 2026-08-26/0/ 编辑


SuiteSearch

Meilisearch 搜索、参数化 MySQL LIKE 降级和重建队列

SuiteSearch 需要 Mysqli 适配器才能在不可用时降级到 LIKE 搜索,并在不支持的适配器上显式拒绝。搜索变更队列表会被自动探测;不创建 create-suite-search.sql 时,搜索仍可使用 MySQL LIKE,Meilisearch 实时写入也保持可选。

下载

启用

决定是否需要完整重建队列。大多数博客只使用 Meilisearch + 实时写入即可,跳过队列表即可。

  1. 如需启用变更队列和定时完整重建,先在 Typecho 数据库里创建队列表(若表前缀不是 typecho_,请替换后再执行):

    mysql typecho < deploy/create-suite-search.sql
  2. 进入 控制台 → 插件 → SuiteSearch → 启用
  3. 打开插件设置,按需填写:

    • 启用 Meilisearch 搜索:关闭则强制只使用 MySQL LIKE
    • Meilisearch 地址http://127.0.0.1:7700 或你自己的远程地址;留空表示不使用 Meilisearch。
    • 搜索 API Key(只读):查询时必须。
    • 写入 API Key:发布/保存/删除后实时写入时使用;不填会跳过直写。
    • 重建 API Keysuite-search-rebuild.php 调用时使用。
    • 任务查询 API Key:可选;留空时回退到重建 Key。
    • 在线索引名称:默认 posts_live
    • 构建索引名称:默认 posts_build;仅在完整重建时使用,外部不要直接查询。
    • 重建切换超时(秒):最少 5 秒。
    • 实时同步:发布/保存/删除时把变更推到队列或直写索引。
    • 降级策略:Meilisearch 不可用时回退到 MySQL LIKE

    密码框刻意保持空白;留空表示保留已存值;输入新值才会覆盖;勾选 清除已保存的 API Key 会清空所有已保存密钥。

  4. 保存。

验证:在前台搜索框输入文章中出现过的关键词。若 Meilisearch 可达,结果来自 Meilisearch;否则来自 MySQL LIKE。在搜索过程中观察 PHP 错误日志确认没有警告:

sudo tail -n 50 /var/log/php-fpm/www-error.log

如需启用 systemd 夜间完整重建(仅在已经创建队列表的前提下):

sudo cp deploy/typecho-suite-search-rebuild.service /etc/systemd/system/
sudo cp deploy/typecho-suite-search-rebuild.timer    /etc/systemd/system/
sudo cp deploy/suite-search-rebuild.php             /usr/local/bin/typecho-suite-search-rebuild
sudo chmod 0750 /usr/local/bin/typecho-suite-search-rebuild
sudo systemctl daemon-reload
sudo systemctl enable --now typecho-suite-search-rebuild.timer
systemctl list-timers | grep typecho-suite

重建脚本优先使用后台设置;旧版 deploy/examples/search-rebuild.env.example 仅作兼容回退。

开源地址

前往Github

猜你喜欢