无法使用Commerce管理更改搜索引擎(搜索引擎菜单不可访问)
警告: 将在Adobe Commerce 2.4.0中删除MySQL目录搜索引擎。 在安装版本2.4.0之前,您必须设置并配置Elasticsearch主机。
请参阅:
安装和配置Elasticsearch。
安装和配置Opensearch
安装和配置实时搜索
本文提供了一个解决方案,用于在 搜索引擎 字段未显示或 使用系统值 复选框灰显且不可访问的情况下,使用Commerce管理员更改Adobe Commerce搜索引擎。
描述
环境
-
Adobe Commerce内部部署:2.4.X
-
云基础架构上的Adobe Commerce:
- 版本:2.4.X
- 入门和专业计划体系结构
-
MySQL、Elasticsearch、Opensearch、Live Search:所有支持的版本
使用管理员更改搜索引擎(步骤)
-
以管理员身份登录到 管理员。
-
在 管理员 侧栏的左侧,单击 商店。
-
在 设置 下,选择 配置。
-
导航到 目录 下的左侧面板,然后选择 目录。
-
展开 目录搜索 部分。
-
转到 搜索引擎 字段,并从 使用系统值 复选框中删除选定内容。
-
单击 搜索引擎 菜单,然后选择下列可用选项之一。
-
单击页面右上角的 保存配置。
Adobe Commerce内部部署问题
问题1:不显示搜索引擎字段
当您访问 目录搜索 部分时,搜索引擎 菜单完全不显示。
原因:存储视图不是默认配置
管理员的“商店视图”已设置为 默认配置 以外的任何值。
搜索引擎是在应用程序级别设置的全局配置,而不是在存储范围中设置的全局配置。 Adobe Commerce应用程序中的商店不能使用其他搜索引擎。
问题2:无法取消选中“使用系统值”
当您访问管理员的 目录搜索 部分时,使用系统值 复选框呈灰显状态,因此您以后无法从复选框中删除选定内容以更改搜索引擎。
原因
默认搜索引擎已在app/etc/env.php
或app/etc/config.php
文件中的应用程序配置级别上配置,因此无法使用管理员进行更改。
具有默认搜索引擎配置的部分的示例:
'system'=>
array (
'default'=>
array (
'catalog'=>
array (
'search'=>
array (
'engine'=>'mysql',
),
),
),
),
解决方法
问题1:不显示搜索引擎字段
解决方案:将存储视图设置为默认配置
-
以管理员身份登录到 管理员。
-
在 管理员 侧栏的左侧,单击 商店。
-
导航到 设置 并选择 配置。
-
单击左上角的 存储视图 选择器,然后选择 默认配置。
-
在确认对话框中单击 确定 以批准商店视图更改。
相关文档: 在我们的用户指南中更改作用域。
问题2:无法取消选中“使用系统值”
解决方案
从app/etc/env.php
或app/etc/config.php
配置文件中删除带有默认搜索引擎配置的部分。
我们的开发人员文档中的相关文章
Adobe Commerce配置指南中的Adobe Commerce配置文件
云基础架构上的Adobe Commerce
由于云基础架构的组织方式,使用管理员切换搜索引擎在Adobe Commerce上不可用。
在部署过程中,云基础架构部署脚本上的Adobe Commerce会检查是否已在MAGENTO_CLOUD_RELATIONSHIPS
变量中声明了Elasticsearch。 如果已声明,则选择Elasticsearch作为活动搜索引擎并自动配置;MySQL搜索引擎在管理员中变得不可访问。 如果未声明Elasticsearch关系,则MySQL将设置为活动,并且Elasticsearch将无法访问。
不建议直接在云环境中编辑app/etc/env.php
或app/etc/config.php
配置文件;这就是为什么更改这些文件以使Elasticsearch引擎显示在管理员中(我们在上一节中推荐的解决方案)不适用于您的云项目。
在暂存和生产环境中更改搜索引擎
在暂存环境和生产环境中将搜索引擎从MySQL切换到Elasticsearch之前,请确保您以前已提交了一个支持票证,请求在环境中启用Elasticsearch,并且该票证已成功解析。
要更改暂存和生产环境中使用的搜索引擎,请更改本地环境中.magento.env.yaml
文件中的SEARCH_CONFIGURATION
环境变量,然后将更改推送到集成和暂存/生产环境,以使更改生效。
如果要切换到Elasticsearch 7,则生成的.magento.env.yaml
文件中的SEARCH_CONFIGURATION
变量可能如下所示:
stage:
deploy:
SEARCH_CONFIGURATION:
engine: elasticsearch7
elasticsearch_server_hostname: hostname
elasticsearch_server_port: '12345'
elasticsearch_index_prefix: magento
elasticsearch_server_timeout: '15'
如果您正在切换到Opensearch(在2.4.6及更高版本中),则生成的.magento.env.yaml
文件中的SEARCH_CONFIGURATION
变量可能如下所示:
stage:
deploy:
SEARCH_CONFIGURATION:
engine: opensearch
elasticsearch_server_hostname: hostname
elasticsearch_server_port: '12345'
elasticsearch_index_prefix: magento
elasticsearch_server_timeout: '15'
如果您正在切换到Live Search,则生成的.magento.env.yaml
文件中的SEARCH_CONFIGURATION
变量可能如下所示:
stage:
deploy:
SEARCH_CONFIGURATION:
engine: livesearch
相关文档
支持知识库
开发人员文档
- 设置Elasticsearch服务
- 生成和部署 (有关
.magento.env.yaml
配置文件的文档) - 部署变量 (SEARCH_CONFIGURATION节)
- 服务 (有关
.magento/services.yaml
配置文件的文档) - 实时搜索