Magento 2.4 系列依赖外部搜索服务处理目录搜索。OpenSearch 服务能访问,并不代表 Magento 一定配置正确;版本兼容、认证、索引前缀和网络路径都需要一起确认。

安装前先确认兼容版本

不同 Magento 2.4 补丁版本支持的 OpenSearch 版本不同。不要直接安装仓库中的最新主版本,应根据当前 Magento 版本的系统要求选择。升级搜索服务前,也要先在预发布环境测试索引和查询。

从 Magento 运行环境测试连接

curl -sS opensearch:9200/
curl -sS opensearch:9200/_cluster/health

命令必须从运行 Magento 的容器或服务器执行。开发机能连接,不代表 PHP-FPM 所在网络也能访问。启用 HTTPS 或认证时,不要把密码直接写进公开脚本和日志。

配置搜索引擎

可以在后台的目录搜索配置中填写,也可以使用 CLI。下面只展示常见字段,实际命令选项以当前版本的 setup:config:set --help 为准:

bin/magento setup:config:set \n  --search-engine=opensearch \n  --opensearch-host=opensearch \n  --opensearch-port=9200 \n  --opensearch-index-prefix=alwayly_store

同一个 OpenSearch 集群承载多个 Magento 环境时,每个环境必须使用不同索引前缀,避免测试站覆盖生产索引。

连接测试通过以后

bin/magento indexer:reindex catalogsearch_fulltext
bin/magento indexer:status catalogsearch_fulltext
bin/magento cache:clean config full_page

全量索引失败时查看 Magento 日志和 OpenSearch 日志。集群磁盘达到高水位后,索引可能进入只读状态;继续重试不会自行恢复。

生产环境需要监控什么

  • 集群健康与未分配分片。
  • 磁盘水位和 JVM 内存。
  • 索引耗时、查询延迟和拒绝请求。
  • Magento 增量索引是否持续更新。

最后不要只搜索一个商品名称。用 SKU、中文分词、部分词、同义词和无结果词分别测试,才能确认“服务连接成功”之外的搜索质量也正常。