Elasticsearchサービスの設定

Elasticsearch は、あらゆるソース、あらゆる形式のデータを取得し、リアルタイムで検索および視覚化できるオープンソース製品です。

WARNING
Elasticsearch 7.11 以降は、クラウドインフラストラクチャー上のAdobe Commerceではサポートされていません。 Adobe Commerce バージョン 2.3.7 ~ p3、2.4.3 ~ p2、および 2.4.4 以降では、OpenSearch サービスをサポートしています。 オンプレミスのインストールでは、引き続きElasticsearchがサポートされます。

Adobe Commerce バージョン 2.4.4 以降については、を参照してください。 OpenSearch サービスの設定.

  • Elasticsearchが商品カタログ内の商品に対してクイック検索と詳細検索を実行します
  • Elasticsearchアナライザーは複数の言語をサポートしています
  • ストップワードおよび同義語のサポート
  • インデックス再作成が完了するまで、インデックス作成は顧客に影響しません
TIP
Adobeでは、Adobe Commerce アプリケーションにサードパーティの検索ツールを設定する予定がある場合でも、クラウドインフラストラクチャプロジェクトでAdobe CommerceのElasticsearchを常に設定することをお勧めします。 Elasticsearchの設定では、サードパーティの検索ツールでエラーが発生した場合に備えてフォールバックオプションを提供しています。

Pro 統合環境およびスターター環境でのサービス設定については、以下の手順に従ってください。 master 分岐。

NOTE
Adobe Commerce サポートチケットを送信 pro 実稼動環境およびステージング環境でサービス設定を変更する場合。

Elasticsearchを有効にするには:

  1. スタータープロジェクトの場合は、 elasticsearch へのサービス .magento/services.yaml Elasticsearchのバージョンと割り当てられたディスク領域を MB 単位で表したファイル。

    code language-yaml
    elasticsearch:
        type: elasticsearch:<version>
        disk: 1024
    

    Pro プロジェクトの場合、ステージング環境と実稼動環境でElasticsearchのバージョンを変更するには、Adobe Commerce サポートチケットを送信する必要があります。

  2. relationships のプロパティ .magento.app.yaml ファイル。

    code language-yaml
    relationships:
        elasticsearch: "elasticsearch:elasticsearch"
    
  3. コードの変更を追加、コミットおよびプッシュします。

    code language-bash
    git add .magento/services.yaml .magento.app.yaml && git commit -m "Enable Elasticsearch" && git push origin <branch-name>
    

    これらの変更が環境に与える影響については、を参照してください。 サービス.

  4. デプロイメントプロセスが完了したら、SSH を使用してリモート環境にログインします。

    code language-bash
    magento-cloud ssh
    
  5. カタログ検索インデックスを再インデックス化します。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  6. キャッシュをクリーンアップします。

    code language-bash
    bin/magento cache:clean
    
TIP
サービスの初期セットアップ後、 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 ソフトウェアの互換性を確認するには:

  1. ローカルワークステーションで、をプロジェクトディレクトリに変更します。

  2. アクティブなElasticsearchの環境の詳細を表示します。

    code language-bash
    magento-cloud relationships --property=elasticsearch
    
  3. または、SSH を使用してリモート環境にログインすることもできます。

    code language-bash
    magento-cloud ssh
    
  4. 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 ファイルを環境のルートディレクトリに格納します。

  5. コマンドラインから、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                                                                 |
    +------------------------------------------+----------------------------------------------------------------------+
    
  6. インストールされている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"
    }
    
  7. Elasticsearchサービスと PHP クライアントのバージョンの互換性を確認します。

    バージョンに互換性がない場合は、環境設定を次のいずれかの更新をおこないます。

    • Elasticsearch PHP クライアントを、Elasticsearchサービスのバージョンと互換性のあるバージョンに変更します。

      code language-bash
      composer require "elasticsearch/elasticsearch:~<version>"
      
    • でElasticsearchサービスのバージョンを変更する services.yaml ファイルを、Elasticsearch PHP クライアントと互換性のあるバージョンに変更します。

TIP
Pro プロジェクトの場合は、次の操作が必要です Adobe Commerce サポートチケットを送信 をインストールまたは更新するには サービス 。対象: Staging および Production 環境のみ。
必要なサービス変更を示し、更新済みを含める .magento.app.yaml および services.yaml ファイルを開き、PHP のバージョンをチケットに書き込みます。 PHP のバージョン、拡張機能、または環境設定のセルフサービスの変更については、を参照してください。 PHP 設定 。対象: アプリケーション設定.
に変更を加えた場合 ライブ 実稼動環境(Pro のみ)、クラウドインフラストラクチャチームがリソースをマーシャリングし、安全なアップグレードを実施するのに十分な時間を確保するために、少なくとも 48 時間の注意事項を提供する必要があります。

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プラグインを削除するには:

  1. からElasticsearchプラグインのエントリを削除する .magento/services.yaml ファイル。

  2. コードの変更を追加、コミット、プッシュします。

    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>
    
  3. をコミット .magento/services.yaml クラウドリポジトリに対する変更。

  4. カタログ検索インデックスを再インデックス化します。

    code language-bash
    bin/magento indexer:reindex catalogsearch_fulltext
    
  5. キャッシュをクリーンアップします。

    code language-bash
    bin/magento cache:clean
    
TIP
Adobe Commerceでの Elastic Suite プラグインの使用またはトラブルシューティングについて詳しくは、 Elastic Suite ドキュメント.

トラブルシューティング

Elasticsearchの問題のトラブルシューティングについては、以下のAdobe Commerce サポートの記事を参照してください。

recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26