Commerce Admin を使用して検索エンジンを変更できない(検索エンジンメニューにアクセスできない)
警告: MySQL カタログ検索エンジンは、Adobe Commerce 2.4.0 で削除されます。 バージョン 2.4.0 をインストールする前に、Elasticsearch ホストをセットアップおよび設定しておく必要があります。
以下を参照してください。
Elasticsearchをインストールして設定します。
Opensearch のインストールと設定
Live Search のインストールと設定
この記事では、「 検索エンジン 」フィールドが表示されない場合や、「 システム値を使用 」チェックボックスが灰色表示になっており、アクセスできない場合に、Commerce管理を使用してAdobe Commerce検索エンジンを変更する方法について説明します。
説明
環境
-
Adobe Commerce オンプレミス:2.4.X
-
クラウドインフラストラクチャー上のAdobe Commerce:
- バージョン:2.4.X
- スターターおよび Pro プランアーキテクチャ
-
MySQL、Elasticsearch、Opensearch、Live Search:サポートされているすべてのバージョン
管理者を使用して検索エンジンを変更する(手順)
-
Admin に管理者としてログインします。
-
管理者 サイドバーの左側にある ストア をクリックします。
-
設定 で 設定 を選択します。
-
左側の カタログ の下のパネルに移動して、「 カタログ 」を選択します。
-
「 カタログ検索 」セクションを展開します。
-
「 検索エンジン 」フィールドに移動し、「 システム値を使用 」チェックボックスから選択を削除します。
-
検索エンジン メニューをクリックし、次に示すように、使用可能なオプションの 1 つを選択します。
-
ページの右上隅にある「 設定を保存 」をクリックします。
Adobe Commerceのオンプレミスにおける問題
問題 1:検索エンジンフィールドが表示されない
「 カタログ検索 」セクションにアクセスすると、「 検索エンジン 」メニューが表示されません。
原因:ストア ビューが既定の構成ではありません
管理者のストア表示が、デフォルト設定 以外の値に設定されています。
検索エンジンは、ストア範囲ではなく、アプリケーションレベルで設定されるグローバル設定です。 Adobe Commerce アプリケーション内のストアは、異なる検索エンジンを使用できません。
問題 2:「システム値を使用」をオフにできません
管理者の「 カタログ検索 」セクションにアクセスすると、「 システム値を使用 」チェックボックスが灰色表示になるので、チェックボックスの選択を削除して後で検索エンジンを変更することはできません。
原因
デフォルトの検索エンジンは、app/etc/env.php
ファイルまたは app/etc/config.php
ファイル内でアプリケーション設定レベルで設定されているので、管理者を使用して変更することはできません。
デフォルトの検索エンジン設定を含むセクションの例:
'system'=>
array (
'default'=>
array (
'catalog'=>
array (
'search'=>
array (
'engine'=>'mysql',
),
),
),
),
解決策
問題 1:検索エンジンフィールドが表示されない
解決策:ストア表示をデフォルト設定に設定します
-
Admin に管理者としてログインします。
-
管理者 サイドバーの左側にある ストア をクリックします。
-
設定 に移動し、「 設定 」を選択します。
-
左上隅の「 ストア表示 」セレクターをクリックして、「デフォルト設定」を選択します。
-
確認ダイアログボックスで OK をクリックして、ストア表示の変更を承認します。
関連ドキュメント: ユーザーガイドの 範囲の変更。
問題 2:「システム値を使用」をオフにできません
ソリューション
デフォルトの検索エンジン設定があるセクションを、app/etc/env.php
または app/etc/config.php
の設定ファイルから削除します。
開発者向けドキュメントの関連記事
Adobe Commerce設定ガイドの Adobe Commerce設定ファイル
クラウドインフラストラクチャー上のAdobe Commerce
クラウドインフラストラクチャの編成の仕方により、クラウドインフラストラクチャ上のAdobe Commerceでは、管理者を使用して検索エンジンを切り替えることはできません。
デプロイメントプロセス中に、クラウドインフラストラクチャー上のAdobe Commerce デプロイメントスクリプトは、Elasticsearchが MAGENTO_CLOUD_RELATIONSHIPS
変数で宣言されているかどうかを確認します。 宣言すると、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'
(2.4.6 以降で Opensearch に切り替える場合結果の .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
設定ファイルに関するドキュメント) - Live Search