无法使用Commerce管理更改搜索引擎(搜索引擎菜单不可访问)
本文提供了一个解决方案,用于在 搜索引擎 字段未显示或 使用系统值 复选框灰显且不可访问的情况下,使用Commerce管理员更改Adobe Commerce搜索引擎。
在本文中:
受影响的版本
-
Adobe Commerce内部部署:2.4.X
-
云基础架构上的Adobe Commerce:
- 版本:2.4.X
- 入门和专业计划体系结构
-
MySQL、Elasticsearch、Opensearch、Live Search:所有支持的版本
使用管理员更改搜索引擎(步骤)
- 以管理员身份登录 Admin。
- 在 Admin 侧栏的左侧,单击 Stores。
- 在 Settings 下,选择 Configuration。
- 导航到左侧 Catalog、 下的面板,然后选择 Catalog。
- 展开 Catalog Search 部分。
- 转到 Search Engine 字段并从 Use system value 复选框中删除所选内容。
- 单击 Search Engine 菜单并选择以下所示的可用选项之一。
- 单击页面右上角的 Save Config。
Adobe Commerce内部部署问题
问题1:不显示搜索引擎字段
当您访问 目录搜索 部分时,搜索引擎 菜单完全不显示。
原因:存储视图不是默认配置
管理员的“商店视图”已设置为 默认配置 以外的任何值。
搜索引擎是在应用程序级别设置的全局配置,而不是在存储范围中设置的全局配置。 Adobe Commerce应用程序中的商店不能使用其他搜索引擎。
解决方案:将存储视图设置为默认配置
- 以管理员身份登录 Admin。
- 在 Admin 侧栏的左侧,单击 Stores。
- 导航到 Settings 并选择 Configuration。
- 单击左上角的 Store View 选择器,然后选择 默认配置。
- 单击确认对话框中的 OK 以批准存储视图更改。
相关文档: 更改用户指南中的作用域。
问题2:无法取消选中“使用系统值”
当您访问管理员的 目录搜索 部分时,使用系统值 复选框呈灰显状态,因此您以后无法从复选框中删除选定内容以更改搜索引擎。
原因
默认搜索引擎已在app/etc/env.php
或app/etc/config.php
文件中的应用程序配置级别上配置,因此无法使用管理员进行更改。
具有默认搜索引擎配置的部分的示例:
'system'=>
array (
'default'=>
array (
'catalog'=>
array (
'search'=>
array (
'engine'=>'mysql',
),
),
),
),
解决方案
从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
环境变量,然后将更改推送到集成和暂存/生产环境,以使更改生效。
如果您正在切换到Elasticsearch7,则生成的.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
配置文件的文档) - 实时搜索