Magento 2 で Elasticsearch を構成する方法

公開: 2022-12-20

目次

Magento プラットフォームは、事業主がより少ない制限とより大きな柔軟性で店舗を立ち上げる絶好の機会を開きました。 店舗には多くのカテゴリやサブカテゴリに何千もの製品が存在する場合があり、通常、顧客が製品の検索に費やす時間は短い傾向にあります。 したがって、顧客に簡単な検索エクスペリエンスと有用なリアルタイム検索結果を提供できない場合、Magento ストアはコンバージョンの低下に直面する可能性があります。 これが強力な検索エンジンが必要な理由であり、Magento 2 Elasticsearch が役に立ちます。

Magento 2 の Elasticsearch とは何ですか?

エラスティックサーチのロゴ

Elasticsearch BV によると、Elasticsearch は、テキスト、数値、地理空間、構造化、非構造化など、あらゆる種類のデータに対応する、分散型で無料のオープンな検索および分析エンジンです。

2010 年に最初にリリースされた Elasticsearch は、Apache Lucene と呼ばれる Java ベースの検索およびインデックス作成ライブラリに基づいて構築されています。 関連するキーワードを提案し、ドキュメントまたはデータベース内の単語を比較して完全なクエリを表示する全文検索エンジンです。 また、その分散モデルとすべてのタイプのデータに対するオープン性により、検索が高速になり、スケーリングが容易になります。

これらの機能により、Elasticsearch はアプリケーション検索で使用されてきました。 ウェブサイト検索; 企業検索; ロギングとログ分析。 アプリケーション パフォーマンスの監視。 地理空間データの分析と視覚化; ビジネスアナリティクスなど

Magento 2.4 以降、Adobe Commerce または Magento では、Elasticsearch をデフォルトのカタログ検索エンジンにする必要があります。 したがって、これは必須コンポーネントとなり、Magento のインストール時に無効にすることはできません。 Elasticsearch は、より迅速でより関連性の高い検索結果を顧客にリアルタイムで提供し、ビジネスのコンバージョン率を高めます。 これは、顧客と Magento 2 ストアの所有者の両方にとって大きなメリットです。

エラスティックサーチはどのように機能しますか?

Elasticsearch がこのように迅速で信頼性の高い検索結果を提供できるのは、テキストを調べるのではなくインデックスを探すインデックス作成機能です。 エラスティック インデックスは、同様に構造化されたドキュメントのグループであり、迅速かつ効率的なデータ検索を可能にし、論理的に関連するドキュメントを格納するために使用されます。

ログ、システム メトリック、Web アプリケーションなどのさまざまなソースから生データが Elasticsearch に流れ込むと、Elasticsearch はそれを処理します。 次に、このデータにインデックスを付けます。その後、ユーザーはデータに対して複雑な検索を実行し、集計を使用してデータの詳細な要約を受け取ることができます。 (Elastic.co)

弾性検索構造
ソース: www.threerocktechkno.com

Elasticsearch の重要な機能の一部:

  • クイックテキスト検索
  • 検索候補
  • オートコンプリート
  • スペル/ミスタイプのチェックとストップワードの検出
  • ロギングと分析
  • 位置情報検索

Magento 2 Elasticsearch の利点

素晴らしい検索体験

遅い応答時間と検索エンジンの貧弱な機能により、直帰率が高くなる可能性があります。 Elasticsearch の迅速な結果生成とリアルタイムの関連する結果により、顧客は落胆してサイトを離れることはありません。

また、自動補完と自動提案のおかげで、顧客は多くの時間と労力を節約できるだけでなく、間違ったクエリを減らすことができます.

また、検索者が通常直面する苛立たしいことの 1 つは、タイプミスやスペルミスです。 これにより、検索エンジンがキーワードを認識できず、「結果が見つかりません」というステータスが表示されます。 Elasticsearch は、ストップ ワードとそれに一致するフレーズを見つけることができるため、関連する結果を提供し、より正確にすることさえできます。

クイック検索

Elasticsearch は、検索されたキーワードを 10 秒未満で取得できる強力なツールであり、一般的な SQL ベースの検索よりもはるかに高速です。 Lucene の上に構築され、分散型逆インデックスを使用するため、Elasticsearch は全文検索で非常に優れたパフォーマンスを発揮します。 ElasticSearch は結果セットのすべての検索クエリをキャッチできるため、検索クエリにキャッシュされたフィルターが含まれるたびに、キャッシュからの結果の検索が指示されます。 これは、ドキュメントがインデックス化されてから検索可能になるまでの時間が比較的短いことを意味し、その結果、検索結果のレスポンスが向上します。

高いスケーラビリティと大量のデータ管理

Elasticsearch は分散アーキテクチャに基づいています。 同社は、「Elasticsearch に保存されているドキュメントは、シャードと呼ばれるさまざまなコンテナーに分散されており、ハードウェア障害が発生した場合にデータの冗長コピーを提供するために複製されます」と述べています。 したがって、その性質により、数千台のサーバーにスケールアップし、膨大な量のデータを管理できます。

さらに、多数のノードを持つ任意のクラスターまたはシステムで正常に処理できるように構築されています。 その結果、単一の小さなクラスターからより大きなクラスターへの拡張は、準備がほとんど必要なく、実質的にシームレスです。

スキーマフリー

Elasticsearch は、JavaScript Object Notation である JSON を使用します。 データ構造を検出して検索可能にするインデックス データを含む JSON ドキュメントを格納します。 これは、特定のデータ型が指定されていない限り、いかなる種類のデータ定義も必要とせず、通常はデフォルトを使用してデータのインデックスを作成することを意味します。 新しいプロパティを持つオブジェクトが後でインデックス化されると、マッピング定義が自動的に更新されます。 したがって、スキーマフリーです。

Elasticsearch をセットアップするための前提条件

ユーザーがバージョン 2.4.x にアップグレードする前に、Magento プラットフォームに必須のアドオンとして、Elasticsearch をインストールして構成する必要があります。 また、ユーザーは、Adobe が Adob​​e Commerce 2.3.x および PHP 7.3 をサポートしなくなったことに注意する必要があります。 そのため、PCI コンプライアンスを維持するために、Adobe Commerce 2.4.x およびPHP 7.4.xにアップグレードすることをお勧めします。

adobe-commerce-note-on-versions
出典:Adobe Commerce DevDocs

現在の Magento 2.4.x インストール シーケンスでは、ユーザーは次の追加要件とともに Elasticsearch をインストールする必要があります。

  • Web サーバー (Apache または Nginx)
  • MySQL
  • PHP

すべてのインストールで Magento が要求するバージョンは Elasticsearch 7.6.x であるため、ユーザーは必ずこのバージョンを選択する必要があります。 現在のサードパーティ製 Magento 2 Elasticsearch 拡張機能の中には、Elasticsearch を Magento ストアに統合するのに役立つものがあります。

Magento ストアの簡単な Elasticsearch 構成

ここでは、Magento 2 管理パネルを使用して Elasticsearch を構成する手順について説明します。

ステップ 1: Magento 2 Elasticsearch 検索オプションの構成

1. Magento 2 管理パネルに管理者としてログインします。

magento-管理者パネル

2. [ストア] をクリックします。 [設定] で [構成] を選択します。 このページから、[カタログ] セクションをクリックして展開します。

magento 構成パネル

3.カタログ検索を選択します。 ここには、選択するすべての検索エンジンのバージョンとその他の一般設定が表示されます。

  • 最小クエリ長: Elasticsearch の推奨事項または提案が表示される前にユーザーが入力する必要がある最小文字数。 システムのデフォルト値は 3 です。
  • クエリの最大長: 結果を表示するために入力する最大文字数。 システムのデフォルト値は 128 です。
  • キャッシュへの上位の検索結果の数:ここでは、人気のある検索結果の制限数を入力して、応答速度を向上させます。 デフォルト値は 100 です。用語が 2 回目に検索されるときは、「0」を送信してすべての結果をキャッシュします。
  • EAV インデクサーを有効または無効にします。このフィールドを変更して、インデックス作成の速度を上げ、インデクサーを使用するサードパーティの拡張機能を回避します。
  • オートコンプリート制限: Magento 2 Elasticsearch オートコンプリートで表示される検索結果の最大数を制限する値を設定します。 これにより、検索パフォーマンスが向上し、表示されるリストが短くなります。 デフォルト設定は 8 です。
一般的な弾性検索設定

ステップ 2: Magento 2 Elasticsearch 接続の構成

次の表は、Magento との接続を構成およびテストするために必要なオプションを示しています。 設定を調整せずにデフォルトのままにする場合は、次の手順に進みます。

Magento-2-elasticsearch-connection-test-table
出典:Adobe Commerce DevDocs
Magento-2-elasticsearch-connection-test-fields

[接続のテスト]をクリックして、セットアップとテストを終了します。

接続がうまくいかない場合は、次の方法を試してください。

  • Elasticsearch サーバーがまだ実行中であることを確認します。
  • Magento サーバーにログインし、Elasticsearch ホストが Magento とは異なるホスト上にある場合は、そのホストに ping を実行します。 ネットワーク接続の問題を解決し、接続を再テストします。
  • 続行する前に、Elasticsearch を起動したコマンド ウィンドウでスタック トレースとエラーに対処します。 また、root アクセス権を持つユーザーとして Elasticsearch を開始したことを確認してください。
  • UNIX ファイアウォールと SELinux がオフになっていることを確認するか、ルールを設定して Elasticsearch と Magento 間の通信を有効にします。
  • netstat -an | grep **listen-port**を使用して、Elasticsearch Server Port フィールドで選択されたポートが別のプロセスによってまだ使用されていないことを保証します。 netstat -an | grep **listen-port**コマンド。

ステップ 3: 提案と推奨事項を構成する

上記のように、Magento 2 Elasticsearch の検索の推奨事項と提案は、適切な製品を探しているお客様にとって便利で役立ちます。

この段階では、デフォルト設定を使用するか、いくつかの変更を加えることができます。

  • [検索候補を有効にする] フィールドと [検索候補を有効にする] フィールドを有効にします。
  • [検索の推奨数] および [検索の推奨数]フィールドで、検索の推奨事項と提案をいくつ提供するかを選択します。
  • [各推奨事項の結果数を表示] および [各推奨事項結果数を表示] フィールドで、各推奨事項および提案について見つかった結果の数を表示するかどうかを許可します。
  • ユーザーが最も関連性の高いものを受け取るために検索結果が一致する必要がある用語の最小数を設定するには、[一致する最小用語] に値を指定します。
Magento-2-elasticsearch-recommendation-suggestion-settings

設定が完了したら、 Save Configを押します。

ステップ 4: カタログ検索の再インデックス化とフル ページ キャッシュの更新

Magento 2 Elasticsearch 構成を変更した後、カタログ検索インデックスを再インデックスし、完全なページ キャッシュをリロードする必要があります。 これを行うには、管理者またはコマンド ラインを使用する 2 つの方法があります。

を使用して 管理パネル:

  1. 管理画面で、[システム] をクリックし、[キャッシュ管理] に移動します。
  2. Page Cacheのボックスにチェックを入れます。
  3. ページの右上にある [アクション]リストから [更新]を選択します。
キャッシュ管理セクション

キャッシュを消去するには、 magento cache:cleanコマンドを実行します。

コマンドラインを使用する:

  • ファイル システムの所有者としてログインするか、Magento サーバーでそれに切り替えます。
  • カタログ検索インデックスのみを再インデックス化するには、次のように入力します。

bin/magento indexer:reindex catalogsearch_fulltext

  • すべてのインデクサーのインデックスを再作成するには、次のように入力します。

bin/magento indexer:reindex

  • 再インデックス処理が完了するまで待ちます。

結論

Netflix、LinkedIn、eBay などの有名な名前で使用されている Elasticsearch は、サイト検索を顧客にとって簡単かつ効果的にすることで信頼されています。 Magento 2 Elasticsearch の設定が完了すると、ストアが強化され、検索が売り上げにつながり、カートの放棄が最小限に抑えられます。
この投稿がお役に立てば幸いです。e コマースでの成功をお祈りしています。