無法使用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、即時搜尋:所有支援的版本
使用管理員變更搜尋引擎(步驟)
-
以系統管理員身分登入 Admin。
-
在 管理員 側邊欄的左側,按一下 商店。
-
在 設定 下,選擇 組態。
-
導覽至 目錄 下左側的面板,然後選擇 目錄。
-
展開 目錄搜尋 區段。
-
移至 搜尋引擎 欄位,並從 使用系統值 核取方塊中移除選取專案。
-
按一下 搜尋引擎 功能表,然後選取下列其中一個可用選項。
-
按一下頁面右上角的 儲存設定。
Adobe Commerce內部部署問題
問題1:未顯示搜尋引擎欄位
存取 目錄搜尋 區段時,搜尋引擎 功能表完全不會顯示。
原因:存放區檢視不是預設設定
管理員的存放區檢視已設定為 預設設定 以外的任何值。
搜尋引擎是在應用程式層級上設定的全域組態,而不是在存放區範圍上。 Adobe Commerce應用程式內的商店不能使用不同的搜尋引擎。
問題2:無法取消勾選「使用系統值」
當您存取管理員的 目錄搜尋 區段時,使用系統值 核取方塊會呈現灰色,因此您之後無法移除核取方塊中的選取專案來變更搜尋引擎。
原因
預設搜尋引擎已在app/etc/env.php或app/etc/config.php檔案中的應用程式設定層級上設定,因此無法使用Admin變更。
具有預設搜尋引擎設定的區段範例:
'system'=>
array (
'default'=>
array (
'catalog'=>
array (
'search'=>
array (
'engine'=>'mysql',
),
),
),
),
解決方法 resolution
問題1:未顯示搜尋引擎欄位
解決方案:將存放區檢視設定為預設設定
-
以系統管理員身分登入 Admin。
-
在 管理員 側邊欄的左側,按一下 商店。
-
瀏覽至 設定 並選擇 設定。
-
在左上角,按一下 商店檢視 選取器,然後選擇 預設設定。
-
在確認對話方塊中按一下 確定 以核准存放區檢視變更。
相關檔案: 變更使用手冊中的領域。
問題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引擎顯示在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
相關檔案
支援知識庫
開發人員文件
- 設定Elasticsearch服務
- 建置和部署 (有關
.magento.env.yaml組態檔的檔案) - 部署變數 (SEARCH_CONFIGURATION節)
- 服務 (有關
.magento/services.yaml組態檔的檔案) - 即時搜尋