结论:不要装 meilisearch 包,它只是官方 sdk,不是搜索引擎服务本身;你真正要装的是 meilisearch 服务(二进制或 docker),再用 sdk 连接它。

直接说结论:不要装 meilisearch 包,它只是官方 SDK,不是搜索引擎服务本身;你真正要装的是 MeiliSearch 服务(二进制或 Docker),再用 SDK 连接它。
为什么 composer require meilisearch/meilisearch-php 不等于“装好 MeiliSearch”
这个命令只装 PHP 客户端 SDK,类似一个“遥控器”,但遥控器不能自己发电——没有 MeiliSearch 服务在后台运行,调用 $client->index('movies')->addDocuments(...) 会立刻报 cURL error 7: Failed to connect。
常见误操作:
- 执行完
composer require就以为可以开始建索引了 - 在 Laravel 中配好
MEILISEARCH_HOST却没起服务,查日志只看到连接拒绝 - 把 SDK 当成嵌入式引擎(像 SQLite 那样),试图不启服务直接用
本地开发环境怎么启动 MeiliSearch 服务(推荐 Docker)
Docker 是最干净、版本可控的方式,避免 macOS/Linux 下手动下载二进制+权限/路径问题。
执行以下命令即可拉起默认配置的服务(HTTP 端口 7700,无需额外配置):
docker run -d \ -p 7700:7700 \ -v $(pwd)/meilidata:/data.ms \ --name meilisearch \ getmeili/meilisearch:v1.8.2
验证是否跑起来:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
- 访问
http://localhost:7700/health→ 返回{"status":"available"} - 或者用 curl:
curl -I http://localhost:7700/health看状态码是不是 200
注意:v1.8.2 是当前稳定版(截至 2026 年 4 月),别用 :latest 标签,PHP SDK 对服务端版本有兼容要求,v1.8.x SDK 默认适配 v1.8.x 服务。
PHP SDK 怎么初始化并连上本地服务
装完 meilisearch/meilisearch-php 后,关键不是“怎么 new Client”,而是“怎么确保它连得对”:
- 默认构造函数会连
http://localhost:7700,如果你改了端口或用了 Docker Network,必须显式传参 - 生产环境必须设 API key,本地开发可先用默认无密模式(启动时加
-e MEILI_NO_AUTH=1) - SDK 实例建议单例复用,不要每次请求都 new 一个,否则连接池浪费 + 性能下降
示例(Laravel 的 config/meilisearch.php 或普通脚本中):
$client = new \MeiliSearch\Client(
'http://localhost:7700',
'masterKey' // 本地无密可填任意非空字符串,生产必须用真实 key
);
如果 Docker 换了网络模式(比如自定义 bridge),localhost 在 PHP 容器里就指向自己,得换成宿主机网关(如 host.docker.internal)。
容易被忽略的三个硬性依赖点
很多人卡在这三步,反复重装 SDK 却无效:
- MeiliSearch 服务进程必须在运行中(
docker ps | grep meilisearch确认) - PHP 所在环境(CLI / FPM / Docker)必须能路由到 MeiliSearch 地址(跨容器需检查 network 和 host 配置)
- SDK 版本和 MeiliSearch 服务版本必须匹配(例如 SDK v1.8.0 不支持服务端 v1.9.0 的新字段,会解析失败)
版本对应关系查官方 CHANGELOG 最准,别信 Composer 的 latest 自动升级——它只管 PHP 包,不管服务端。










