文档

无法使用Commerce管理更改搜索引擎(搜索引擎菜单不可访问)

2025年6月18日

警告: 将在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:所有支持的版本

使用管理员更改搜索引擎(步骤)

  1. 以管理员身份登录到 管理员。

  2. 在 管理员 侧栏的左侧,单击 商店。

  3. 在 设置 下,选择 配置。

  4. 导航到 目录 下的左侧面板,然后选择 目录。

  5. 展开 目录搜索 部分。

    catalog_menu.png

  6. 转到 搜索引擎 字段,并从 使用系统值 复选框中删除选定内容。

  7. 单击 搜索引擎 菜单,然后选择下列可用选项之一。

    search_engine_menu.png

  8. 单击页面右上角的 保存配置。

Adobe Commerce内部部署问题

问题1:不显示搜索引擎字段

当您访问 目录搜索 部分时,搜索引擎 菜单完全不显示。

search_engine_not_displayed.png

原因:存储视图不是默认配置

管理员的“商店视图”已设置为​ 默认配置 ​以外的任何值。

搜索引擎是在应用程序级别设置的全局配置,而不是在存储范围中设置的全局配置。 Adobe Commerce应用程序中的商店不能使用其他搜索引擎。

问题2:无法取消选中“使用系统值”

当您访问管理员的 目录搜索 部分时,使用系统值 复选框呈灰显状态,因此您以后无法从复选框中删除选定内容以更改搜索引擎。

原因

默认搜索引擎已在app/etc/env.php或app/etc/config.php文件中的应用程序配置级别上配置,因此无法使用管理员进行更改。

具有默认搜索引擎配置的部分的示例:

'system'=>
array (
'default'=>
array (
'catalog'=>
array (
'search'=>
array (
'engine'=>'mysql',
),
),
),
),

解决方法

问题1:不显示搜索引擎字段

解决方案:将存储视图设置为默认配置

  1. 以管理员身份登录到 管理员。

  2. 在 管理员 侧栏的左侧,单击 商店。

  3. 导航到 设置 并选择 配置。

  4. 单击左上角的 存储视图 选择器,然后选择​ 默认配置。

  5. 在确认对话框中单击 确定 以批准商店视图更改。

    change_store_view.png

相关文档: 在我们的用户指南中更改作用域。

问题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
开发人员文档
  • 设置Elasticsearch服务
  • 生成和部署 (有关.magento.env.yaml配置文件的文档)
  • 部署变量 (SEARCH_CONFIGURATION节)
  • 服务 (有关.magento/services.yaml配置文件的文档)
  • 实时搜索
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f