Elasticsearchサービスの設定
Elasticsearch は、あらゆるソース、あらゆる形式からデータを取得し、リアルタイムで検索および視覚化できるオープンソース製品です。
Adobe Commerce バージョン 2.4.4 以降については、OpenSearch サービスの設定を参照してください。
- Elasticsearchが商品カタログ内の商品に対してクイック検索と詳細検索を実行します
- Elasticsearchアナライザーは複数の言語をサポートしています
- ストップワードおよび同義語のサポート
- インデックス再作成が完了するまで、インデックス作成は顧客に影響しません
master
ブランチを含む Pro 統合環境とスターター環境でのサービス設定については、以下の手順を使用します。
Elasticsearchを有効にするには:
-
スタータープロジェクトの場合、Elasticsearchのバージョンと割り当てられたディスク領域(MB 単位)を指定して
elasticsearch
サービスを.magento/services.yaml
ファイルに追加します。code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024
Pro プロジェクトの場合、ステージング環境と実稼動環境でElasticsearchのバージョンを変更するには、Adobe Commerce サポートチケットを送信する必要があります。
-
.magento.app.yaml
ファイルのrelationships
プロパティを設定します。code language-yaml relationships: elasticsearch: "elasticsearch:elasticsearch"
-
コードの変更を追加、コミットおよびプッシュします。
code language-bash git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
これらの変更が環境に与える影響について詳しくは、 サービスを参照してください。
-
デプロイメントプロセスが完了したら、SSH を使用してリモート環境にログインします。
code language-bash magento-cloud ssh
-
カタログ検索インデックスを再インデックス化します。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
キャッシュをクリーンアップします。
code language-bash bin/magento cache:clean
services.yaml
および .magento.app.yaml
の構成ファイルを更新することで、インストールされているサービスのソフトウェア バージョンを変更できます。 サービスのアップグレードまたはダウングレードのガイダンスについては、 サービスバージョンの変更を参照してください。Elasticsearchソフトウェアの互換性
クラウドインフラストラクチャプロジェクトにAdobe Commerceをインストールまたはアップグレードする際は、ElasticsearchサービスのバージョンとAdobe Commerce用の Elasticsearch PHP クライアントとの互換性を常に確認してください。
-
初回セットアップ-
services.yaml
ファイルで指定されたElasticsearchバージョンが、Adobe Commerce用に設定されたElasticsearch PHP クライアントと互換性があることを確認します。 -
プロジェクトのアップグレード – 新しいアプリケーションバージョンのElasticsearch PHP クライアントが、クラウドインフラストラクチャにインストールされたElasticsearchサービスのバージョンと互換性があることを確認します。
クラウドインフラストラクチャにおけるAdobe Commerceのサービスバージョンと互換性のサポートは、クラウドインフラストラクチャにデプロイされたバージョンによって決まり、Adobe Commerceのオンプレミスデプロイメントでサポートされているバージョンとは異なる場合があります。 サービスバージョンを参照してください。
Elasticsearchソフトウェアの互換性を確認するには:
-
ローカルワークステーションで、をプロジェクトディレクトリに変更します。
-
アクティブなElasticsearchの環境の詳細を表示します。
code language-bash magento-cloud relationships --property=elasticsearch
-
または、SSH を使用してリモート環境にログインすることもできます。
code language-bash magento-cloud ssh
-
elasticsearch/elasticsearch
の Composer パッケージのバージョンを確認します。code language-bash composer show elasticsearch/elasticsearch
応答で、
versions
プロパティのインストールされているバージョンを確認します。code language-none name : elasticsearch/elasticsearch descrip. : PHP Client for Elasticsearch keywords : client, elasticsearch, search versions : * v7.17.1 type : library license : Apache License 2.0 (Apache-2.0) (OSI approved) https://spdx.org/licenses/Apache-2.0.html#licenseText license : GNU Lesser General Public License v2.1 only (LGPL-2.1-only) (OSI approved) https://spdx.org/licenses/LGPL-2.1-only.html#licenseText homepage : source : [git] git@github.com:elastic/elasticsearch-php.git f1b8918f411b837ce5f6325e829a73518fd50367 dist : [zip] https://api.github.com/repos/elastic/elasticsearch-php/zipball/f1b8918f411b837ce5f6325e829a73518fd50367 f1b8918f411b837ce5f6325e829a73518fd50367 path : ~/vendor/elasticsearch/elasticsearch names : elasticsearch/elasticsearch
また、Elasticsearchのルートディレクトリの
composer.lock
ファイルに、環境の PHP クライアントのバージョンがあります。 -
コマンドラインから、Elasticsearchサービス接続の詳細を取得します。
code language-bash vendor/bin/ece-tools env:config:show services
応答で、Elasticsearchサービスエンドポイントの IP アドレスを見つけます。
code language-none | elasticsearch: | +------------------------------------------+----------------------------------------------------------------------+ | username | null | | scheme | http | | service | elasticsearch | | fragment | null | | ip | 169.254.220.11 | | hostname | dzggu33f75wi3sd24lgwtoupxm.elasticsearch.service._.magentosite.cloud | | public | false | | cluster | fo3qdoxtla4j4-master-7rqtwti | | host | elasticsearch.internal | | rel | elasticsearch | | query | | | path | null | | password | null | | type | elasticsearch:6.5 | | port | 9200 | +------------------------------------------+----------------------------------------------------------------------+
-
サービスエンドポイントから、インストールされているElasticsearchサービス
version:number
を取得します。code language-bash curl -XGET <elasticsearch-service-endpoint-ip-address>:9200/
code language-json { "name" : "-AqGi9D", "cluster_name" : "elasticsearch", "cluster_uuid" : "_yze6-ywSEW1MaAF8ZPWyQ", "version" : { "number" : "6.5.4", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "82a8aa7", "build_date" : "2019-01-23T12:07:18.760675Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }, " tagline" : "You Know, for Search" }
-
Elasticsearchサービスと PHP クライアントのバージョンの互換性を確認します。
バージョンに互換性がない場合は、環境設定を次のいずれかの更新をおこないます。
-
Elasticsearch PHP クライアントを、Elasticsearchサービスのバージョンと互換性のあるバージョンに変更します。
code language-bash composer require "elasticsearch/elasticsearch:~<version>"
-
services.yaml
ファイルのElasticsearchサービスのバージョンを、Elasticsearchの PHP クライアントと互換性のあるバージョンに変更します。
-
Staging
および Production
環境でのみ サービスをインストールまたは更新するには、Adobe Commerce サポートチケットを送信する必要があります。.magento.app.yaml
ファイルと services.yaml
ファイルを含め、PHP バージョンをチケットに記載します。 PHP のバージョン、拡張機能、または環境設定のセルフサービスでの変更については、 アプリケーション設定 _のPHP 設定_ を参照してください。Elasticsearchサービスを再起動します
Elasticsearch サービスを再起動する必要がある場合は、Adobe Commerce サポートに連絡してください。
追加の検索設定
-
デフォルトでは、クラウド環境の検索設定は、デプロイするたびに再生成されます。
SEARCH_CONFIGURATION
デプロイ変数を使用して、デプロイメント間でカスタム検索設定を保持できます。 変数のデプロイを参照してください。 -
プロジェクトのElasticsearchサービスを設定した後、管理 UI を使用してElasticsearchElasticsearchをテストし、Adobe Commerceの接続設定をカスタマイズします。
Elasticsearch用プラグインの追加
オプションで、.magento/services.yaml
ファイルのElasticsearchサービスに configuration:plugins
セクションを追加することで、Elasticsearch用のプラグインを追加できます。 例えば、次のコードは ICU 分析と音声分析プラグインを有効にします。
elasticsearch:
type: elasticsearch:<service-version>
disk: 1024
configuration:
plugins:
- analysis-icu
- analysis-phonetic
Elastic Suite サードパーティプラグインを使用する場合は、ece-tools
パッケージをバージョン 2002.0.19 以降に更新する必要があります。
Elastic Suite を設定する際に、ELASTICSUITE_CONFIGURATION
のデプロイ変数に設定を追加します。 この設定により、デプロイメント全体で設定が保存されます。
Elasticsearch用プラグインを削除
.magento/services.yaml
の elasticsearch:
からプラグインエントリを削除しても、期待どおりにアンインストールや無効化は行われません。 Elasticsearchデータを再インデックスする必要があります。 この動作は、これらのプラグインに依存するデータの損失や破損の可能性を防ぐことを目的としています。
Elasticsearchプラグインを削除するには:
-
.magento/services.yaml
ファイルからElasticsearchプラグインのエントリを削除します。 -
コードの変更を追加、コミット、プッシュします。
code language-bash git add .magento/services.yaml
code language-bash git commit -m "Remove Elasticsearch plugin"
code language-bash git push origin <branch-name>
-
.magento/services.yaml
の変更をクラウドリポジトリにコミットします。 -
カタログ検索インデックスを再インデックス化します。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext
-
キャッシュをクリーンアップします。
code language-bash bin/magento cache:clean
トラブルシューティング
Elasticsearchの問題のトラブルシューティングについては、以下のAdobe Commerce サポートの記事を参照してください。