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

WARNING
将在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. 以管理员身份登录​ Admin
  2. 在​ Admin ​侧栏的左侧,单击​ Stores
  3. 在​ Settings ​下,选择​ Configuration
  4. 导航到左侧​ Catalog、 ​下的面板,然后选择​ Catalog
  5. 展开​ Catalog Search ​部分。 catalog_menu.png
  6. 转到​ Search Engine ​字段并从​ Use system value ​复选框中删除所选内容。
  7. 单击​ Search Engine ​菜单并选择以下所示的可用选项之一。 search_engine_menu.png
  8. 单击页面右上角的​ Save Config

Adobe Commerce内部部署问题

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

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

search_engine_not_displayed.png

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

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

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

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

  1. 以管理员身份登录​ Admin
  2. 在​ Admin ​侧栏的左侧,单击​ Stores
  3. 导航到​ Settings ​并选择​ Configuration
  4. 单击左上角的​ Store View ​选择器,然后选择​ 默认配置​
  5. 单击确认对话框中的​ OK ​以批准存储视图更改。

change_store_view.png

相关文档: 更改用户指南中的作用域

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

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

原因

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

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

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

解决方案

app/etc/env.phpapp/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.phpapp/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

相关文档

支持知识库

开发人员文档

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a