無法使用Commerce管理變更搜尋引擎(搜尋引擎功能表無法存取)

警告Adobe Commerce 2.4.0中將移除MySQL目錄搜尋引擎。 您必須先安裝並設定Elasticsearch主機,才能安裝2.4.0版。
請參閱:
安裝及設定Elasticsearch
安裝及設定Opensearch
安裝並設定即時搜尋

本文提供在 搜尋引擎 欄位未顯示或 使用系統值 核取方塊呈現灰色且無法存取時,使用Adobe Commerce管理員變更Commerce搜尋引擎的解決方案。

說明 description

環境

  • Adobe Commerce內部部署: 2.4.X

  • 雲端基礎結構上的Adobe Commerce:

    • 版本: 2.4.X
    • 入門與Pro計畫架構
  • MySQL、Elasticsearch、Opensearch、即時搜尋:所有支援的版本

使用管理員變更搜尋引擎(步驟)

  1. 以系統管理員身分登入 Admin

  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.phpapp/etc/config.php檔案中的應用程式設定層級上設定,因此無法使用Admin變更。

具有預設搜尋引擎設定的區段範例:

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

解決方法 resolution

問題1:未顯示搜尋引擎欄位

解決方案:將存放區檢視設定為預設設定

  1. 以系統管理員身分登入 Admin

  2. 管理員 側邊欄的左側,按一下 商店

  3. 瀏覽至 設定 並選擇 設定

  4. 在左上角,按一下 商店檢視 選取器,然後選擇​ 預設設定

  5. 在確認對話方塊中按一下 確定 以核准存放區檢視變更。

    change_store_view.png

相關檔案: 變更使用手冊中的領域

問題2:無法取消勾選「使用系統值」

解決方案

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引擎顯示在Admin中(我們在上一節中建議的解決方案)不適用於您的雲端專案。

在中繼和生產環境中變更搜尋引擎

在中繼和生產環境上,將搜尋引擎從MySQL切換到Elasticsearch之前,請確定您先前已提交支援票證,請求在環境中啟用Elasticsearch,且票證已成功解析。

若要變更測試和生產環境所使用的搜尋引擎,請變更本機環境上SEARCH_CONFIGURATION檔案中的.magento.env.yaml環境變數,然後將變更推送至整合和測試/生產環境,讓變更生效。

如果您正在切換至Elasticsearch 7,結果SEARCH_CONFIGURATION檔案中的.magento.env.yaml變數可能如下所示:

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和更新版本中),結果的SEARCH_CONFIGURATION檔案中的.magento.env.yaml變數可能如下所示:

stage:
  deploy:
   SEARCH_CONFIGURATION:
     engine: opensearch
     elasticsearch_server_hostname: hostname
     elasticsearch_server_port: '12345'
     elasticsearch_index_prefix: magento
     elasticsearch_server_timeout: '15'

如果您正在切換到「即時搜尋」,結果SEARCH_CONFIGURATION檔案中的.magento.env.yaml變數可能如下所示:

stage:
  deploy:
   SEARCH_CONFIGURATION:
     engine: livesearch

相關檔案

支援知識庫
開發人員文件
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f