Elasticsearch サービスの設定
Elasticsearchは、あらゆるソースからデータを取り込み、任意の形式で検索してリアルタイムで視覚化できるオープンソース製品です。
Adobe Commerce バージョン 2.4.4以降については、OpenSearch サービスの設定を参照してください。
- Elasticsearchでは、商品カタログ内の商品に対して、迅速かつ高度な検索を実行します
- Elasticsearch Analyzersは多言語をサポートしています
- ストップワードと類義語をサポート
- インデックス再作成操作が完了するまで、インデックス作成は顧客に影響しません
master ブランチを含むPro統合環境およびスターター環境でのサービス設定については、次の手順を使用します。
Elasticsearchを有効にするには:
-
スタータープロジェクトの場合は、
elasticsearchサービスを.magento/services.yamlファイルに追加し、Elasticsearch バージョンと割り当てられたディスク容量をMB単位で指定します。code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024Pro プロジェクトの場合、ステージング環境と実稼動環境で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 on cloud infrastructureのサービスバージョンと互換性のサポートは、クラウドインフラストラクチャにデプロイされたバージョンによって決まり、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 PHP クライアントのバージョンは、環境ルートディレクトリの
composer.lockファイルにあります。 -
コマンドラインから、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 クライアントと互換性のあるバージョンに変更します。[!BEGINSHADEBOX]
-
-
Pro プロジェクトの場合、
StagingおよびProduction環境でのみ サービス をインストールまたは更新するには、Adobe Commerce サポートチケット を送信する必要があります。 -
必要なサービス変更を示し、更新された
.magento.app.yamlおよびservices.yamlファイルを含め、チケットにPHP バージョンを明記します。 PHPのバージョン、拡張機能、環境設定に対するセルフサービスの変更については、アプリケーション設定のPHP設定を参照してください。note important IMPORTANT 新しいチケットフォームで「環境」フィールドを選択する場合は、Adobeの環境命名を使用します。 例えば、その環境 Dev を内部的に呼び出す場合でも、「ステージング」を選択します。 説明に内部名を記載できますが、「環境」フィールド自体にはAdobeの命名規則を使用する必要があります。 -
実稼動環境(Proのみ)への変更の場合、48時間以上の通知が必要です。 これにより、クラウドインフラチームはリソースを集め、安全なアップグレードを行うのに十分な時間を確保できます。 通知期間は、インフラチームがリクエストを確認し、週末を除くアップグレードをスケジュールした時点から開始されます。 例えば、月曜日にサービスのアップグレードを完了させるには、水曜日までにスケジュールされたアップグレードの確認を受け取る必要があります。 需要のピーク時には、リクエストの処理により多くの時間がかかる場合があります。
note NOTE すべての通信で明確さと一貫性を確保するために、スケジュールされたすべてのメンテナンスウィンドウをUTC形式で提供する必要があります。 ステージング環境ではサービスのアップグレードをスケジュールできません。ほとんどの場合、ステージングのアップグレードはリクエストと同じ日に実行されます。 RabbitMQ アップグレードをリクエストする場合は、アップグレード完了後に環境を再デプロイして、メッセージキューが再初期化されるようにしてください。 -
アップグレードのスケジュールを設定するための2部構成のハンドシェイクプロセス
スムーズで調和のとれたアップグレードプロセスを実現するために、Adobe Commerce サポートでは、すべての実稼動環境のアップグレードに対して2部構成のハンドシェイクプロセスを実行します。
- お客様確認:Adobe サポートは、お客様がアップグレードの希望日時を確認することを最初にリクエストします。 このステップにより、スケジュールが顧客のビジネスニーズとメンテナンスウィンドウに合致していることを確認します。
- スケジュール設定と最終確認:お客様がタイミングを確認すると、Adobe サポートはインフラストラクチャチームにリクエストを送信し、その後、リクエストを確認し、スケジュールされたアップグレードウィンドウの最終確認を行います。
アップグレードは、インフラチームが最終確認を行うまでスケジュールされたとは見なされません。 お客様には、遅延を回避し、適切な通知を行うために、アップグレード期間の少なくとも48時間前に迅速に対応することが推奨されます。
Elasticsearch サービスを再起動します
Elasticsearch サービスを再起動する必要がある場合は、Adobe Commerce サポートにお問い合わせください。
追加の検索設定
-
デフォルトでは、クラウド環境の検索設定は、デプロイするたびに再生成されます。
SEARCH_CONFIGURATIONデプロイ変数を使用して、デプロイ間でカスタム検索設定を保持できます。 変数のデプロイ を参照してください。 -
プロジェクトにElasticsearch サービスを設定した後、管理者UIを使用してElasticsearch接続をテストし、Adobe CommerceのElasticsearch設定をカスタマイズします。
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.yamlcode language-bash git commit -m "Remove Elasticsearch plugin"code language-bash git push origin <branch-name> -
Cloud リポジトリに
.magento/services.yamlの変更をコミットします。 -
カタログ検索インデックスのインデックスを再作成します。
code language-bash bin/magento indexer:reindex catalogsearch_fulltext -
キャッシュをクリーニングします。
code language-bash bin/magento cache:clean