MeiliSearch 装了三遍我才搞对,分享下踩过的坑

0 0

先说结论

中小博客 / 论坛做站内搜索,MeiliSearch 比 ES 友好太多 —— 但第一次装的人 80% 会踩这三个坑。我装了三遍,前两遍各栽了一次,第三遍才稳住。

坑 1:默认绑 0.0.0.0,公网直接裸奔

包安装完默认监听 0.0.0.0:7700没有设 master key 时所有 API 不要鉴权。我第一次装完没改 systemd 配置,第二天就被人写入了 1500 条垃圾文档。

正确做法

# /etc/systemd/system/meilisearch.service
Environment="MEILI_HTTP_ADDR=127.0.0.1:7700"
Environment="MEILI_MASTER_KEY=<32 位以上随机串>"

再用 nginx 反代 + Basic Auth / IP 白名单。永远不要让 7700 端口直接对公网

坑 2:dump 是冷启动的,不是增量同步的

Meili 的 dump / snapshot 是全量的,不是 ES 那种 binlog 持续同步。别想着用 dump 做主从,做不了。每天 cron 一次冷备 + 业务侧 hook 双写就够了:

// ForumPost::afterSave
Yii::$app->meilisearch->indexForumPost($this);

坑 3:中文分词比想象的好

之前用过 ES 的 IK 分词,调一堆词典;Meili 的中文分词直接装就能用,准确率 80% 以上。剩下的 20% 用 synonyms(近义词)和 stopWords(停用词)配置一下就行。

性能数据

本站现在索引 200 条左右帖子 + 200 条回复,平均查询 < 5ms。1.4 GB RAM 服务器吃 35M 内存。


你们的站内搜索用什么? ES、Meili、Algolia 还是直接 LIKE %x%?


回复 (0)

暂无回复,来抢沙发吧!