無法使用Commerce管理變更搜尋引擎(搜尋引擎功能表無法存取)
本文提供在 搜尋引擎 欄位未顯示或 使用系統值 核取方塊呈現灰色且無法存取時,使用Adobe Commerce管理員變更Commerce搜尋引擎的解決方案。
本文章內容:
受影響的版本
-
Adobe Commerce內部部署: 2.4.X
-
雲端基礎結構上的Adobe Commerce:
- 版本: 2.4.X
- 入門與Pro計畫架構
-
MySQL、Elasticsearch、Opensearch、即時搜尋:所有支援的版本
使用管理員變更搜尋引擎(步驟)
- 以系統管理員身分登入 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
檔案中的應用程式設定層級上設定,因此無法使用Admin進行變更。
具有預設搜尋引擎設定的區段範例:
'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引擎顯示在Admin中(我們在上一節中建議的解決方案)不適用於您的雲端專案。
在中繼和生產環境中變更搜尋引擎
將搜尋引擎從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'
如果您正在切換到即時搜尋,則產生的.magento.env.yaml
檔案中的SEARCH_CONFIGURATION變數可能如下所示:
stage:
deploy:
SEARCH_CONFIGURATION:
engine: livesearch
相關檔案
支援知識庫
開發人員檔案
- 設定Elasticsearch服務
- 建置和部署 (有關
.magento.env.yaml
組態檔的檔案) - 部署變數 (SEARCH_CONFIGURATION區段)
- 服務 (有關
.magento/services.yaml
組態檔的檔案) - 即時搜尋