Elasticsearchサービスの設定
Elasticsearch は、あらゆるソース、あらゆる形式のデータを取得し、リアルタイムで検索および視覚化できるオープンソース製品です。
Adobe Commerce バージョン 2.4.4 以降については、を参照してください。 OpenSearch サービスの設定.
- Elasticsearchが商品カタログ内の商品に対してクイック検索と詳細検索を実行します
- Elasticsearchアナライザーは複数の言語をサポートしています
- ストップワードおよび同義語のサポート
- インデックス再作成が完了するまで、インデックス作成は顧客に影響しません
Pro 統合環境およびスターター環境でのサービス設定については、以下の手順に従ってください。 master
分岐。
Elasticsearchを有効にするには:
-
スタータープロジェクトの場合は、
elasticsearch
へのサービス.magento/services.yaml
Elasticsearchのバージョンと割り当てられたディスク領域を MB 単位で表したファイル。code language-yaml elasticsearch: type: elasticsearch:<version> disk: 1024
Pro プロジェクトの場合、ステージング環境と実稼動環境でElasticsearchのバージョンを変更するには、Adobe Commerce サポートチケットを送信する必要があります。
-
を
relationships
のプロパティ.magento.app.yaml
ファイル。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ソフトウェアの互換性
ElasticsearchインフラストラクチャプロジェクトでAdobe Commerceをインストールまたはアップグレードする際は、クラウドサービスのバージョンとの互換性を常に確認してください。 ELASTICSEARCH PHP Adobe Commerce用クライアント。
-
初回設定 – で指定したElasticsearchのバージョンを確認します。
services.yaml
ファイルは、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
-
Composer パッケージのバージョンをチェックします。
elasticsearch/elasticsearch
.code language-bash composer show elasticsearch/elasticsearch
応答で、にインストールされているバージョンを確認します。
versions
プロパティ。code language-terminal 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-terminal | 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-terminal { "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>"
-
でElasticsearchサービスのバージョンを変更する
services.yaml
ファイルを、Elasticsearch PHP クライアントと互換性のあるバージョンに変更します。
-
Staging
および Production
環境のみ。.magento.app.yaml
および services.yaml
ファイルを開き、PHP のバージョンをチケットに書き込みます。 PHP のバージョン、拡張機能、または環境設定のセルフサービスの変更については、を参照してください。 PHP 設定 。対象: アプリケーション設定.Elasticsearchサービスを再起動します
再起動する必要がある場合 Elasticsearch サービスを利用するには、Adobe Commerce サポートに問い合わせる必要があります。
追加の検索設定
-
デフォルトでは、クラウド環境の検索設定は、デプロイするたびに再生成されます。 を使用できます
SEARCH_CONFIGURATION
変数をデプロイして、デプロイメント間でカスタム検索設定を保持します。 参照: 変数のデプロイ. -
プロジェクトのElasticsearchサービスを設定した後、管理 UI を使用してElasticsearchElasticsearchをテストし、Adobe Commerceの接続設定をカスタマイズします。
Elasticsearch用プラグインの追加
Elasticsearch オプションで、 configuration:plugins
内のElasticsearchサービスに対するセクション .magento/services.yaml
ファイル。 例えば、次のコードは ICU 分析と音声分析プラグインを有効にします。
elasticsearch:
type: elasticsearch:<service-version>
disk: 1024
configuration:
plugins:
- analysis-icu
- analysis-phonetic
Elastic Suite サードパーティプラグインを使用する場合、次の操作が必要です を更新 ece-tools
package をバージョン 2002.0.19 以降にアップグレードします。
Elastic Suite を設定する際には、設定を ELASTICSUITE_CONFIGURATION
変数をデプロイします。 この設定により、デプロイメント全体で設定が保存されます。
Elasticsearch用プラグインを削除
からプラグインのエントリを削除しています elasticsearch:
。対象: .magento/services.yaml
は、期待どおりにアンインストールや無効化をしないでください。 Elasticsearchデータを再インデックスする必要があります。 この動作は、これらのプラグインに依存するデータの損失や破損の可能性を防ぐことを目的としています。
Elasticsearchプラグインを削除するには:
-
からElasticsearchプラグインのエントリを削除する
.magento/services.yaml
ファイル。 -
コードの変更を追加、コミット、プッシュします。
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 サポートの記事を参照してください。