确保Elasticsearch安装正确
本文介绍了因安装和配置不正确的Elasticsearch(ES)所导致问题的解决方案。
Elasticsearch版本与Adobe Commerce的兼容性
-
Adobe Commerce内部部署和Adobe Commerce on cloud基础架构:
- v2.2.3+支持ES 5.x
- v2.2.8+和v2.3.1+支持ES 6.x
- 由于生命周期结束,不建议使用ES v2.x和v5.x。 但是,如果您使用的是Adobe Commerce v2.3.1并且要使用ES 2.x或ES 5.x,您必须更改Elasticsearchphp客户端。
-
Magento Open Sourcev2.3.0+支持ES 5.x和6.x (但建议使用6.x )。
问题
以下症状表示Elasticsearch配置不正确:
-
Error: No alive nodes in your cluster
— 此错误可能显示在Adobe Commerce日志中:var/log/system.log
var/log/support_report.log
var/log/cron.log
var/log/exception.log
- 或在提示符下(例如,当您运行重新索引时)
-
指示Elasticsearch版本与当前版本的Adobe Commerce不兼容的错误(这是特定于云基础架构的Adobe Commerce错误):
code language-none [YYYY-MM-DD HH:MM:SS] CRITICAL: Fix configuration with given suggestions: - Elasticsearch version #<version> is not compatible with current version of magento Upgrade elasticsearch version to ~5.0
其中 版本 是在云环境中运行的Elasticsearch服务。
原因
Elasticsearch安装不正确。 原因可能是:
- 配置文件中存在拼写错误。
- 配置文件中的某个版本与为环境安装的任何版本的Elasticsearch都不匹配。
- 已在环境中正确安装、在配置文件中正确配置的版本,但不是当前安装的Adobe Commerce版本支持的版本。
解决方案
要正确设置Elasticsearch,请执行以下操作:
- 云基础架构上的Adobe Commerce上的商家可以按照我们的开发人员文档中的步骤操作: 设置Elasticsearch服务。
- Adobe Commerce内部部署和Magento Open Source上的商家可以按照我们的开发人员文档中的步骤操作: 安装和配置Elasticsearch。
设置Elasticsearch后,请检查它是否配置正确:
-
登录到服务器。
-
检查运行以下命令的输出中的Elasticsearch版本号(2.x、5.x或6.x):
curl -XGET <Elasticsearch hostname>:<Elasticsearch server port>
例如,在Adobe Commerce中云基础架构上的版本:curl -XGET localhost:9200
-
通过运行以下命令检查Adobe Commerce中云基础架构配置中所配置的内容:
php bin/magento config:show catalog/search
-
检查
catalog/search/engine
并确保它与Elasticsearch的版本号匹配。 例如,在Adobe Commerce中,关于云基础架构:- Elasticsearch5.X - elasticsearch5
- Elasticsearch6.X - elasticsearch6
- Elasticsearch2.X - elasticsearch
-
检查
index_prefix
。 如果您有多个环境,请确保它们具有不同的index_prefix
值。