Live Search で成功するための設定
Adobe Commerce Live Search と Catalog Service は連携して、パフォーマンスが高く関連性の高い直感的な検索ソリューションを提供し、顧客が必要なものを正確かつ迅速に見つけられるようにします。 特に、Catalog Service は、使用する Live Search など、SaaS サービスのカタログデータを表示します。
この記事では、Catalog Service を使用して Live Search を実装する手順を説明します。
オーディエンス
この記事は、Adobe Commerce インスタンスのインストールと設定を担当するデベロッパーまたはシステムインテグレーターを対象としています。
要件
- Adobe Commerce 2.4.4 以降
- PHP バージョン 8.1、8.2、または 8.3
- Composer
サポートされるプラットフォーム
- クラウド上のAdobe Commerce(ECE) :2.4.4 以降
- Adobe Commerce オンプレミス(EE) :2.4.4 以降
ワークフローの概要
大まかに言えば、オンボーディング Live Search では、次の操作が必要です。
1. Live Search 拡張機能をインストールする
Live Search は、 拡張機能の Marketplace から {Composer を通じてAdobeと 🔗 てインスト ルされます。 Live Search をインストールして構成すると、Adobe Commerce は検索とカタログ データの SaaS サービスとの共有を開始します。 この時点で、管理者 ユーザーは、検索ファセット、同義語およびマーチャンダイジングルールの設定、カスタマイズおよび管理を行うことができます。
-
cron ジョブと インデクサーが実行中であることを確認します。
note important IMPORTANT 2023 年 8 月のElasticsearch 7 のサポート終了のお知らせに伴い、Adobe Commerceのお客様はすべて OpenSearch 2.x 検索エンジンに移行することをお勧めします。 製品のアップグレード中に検索エンジンを移行する方法については、 アップグレード ガイドの OpenSearch への移行 を参照してください。 -
Adobeマーケットプレイスから
live-search
パッケージをダウンロードします。 -
コマンドラインから次を実行します。
code language-bash composer require magento/live-search
Live Search 拡張機能を 新規 Adobe Commerceのインストールに追加する場合は、次のコマンドを実行して、OpenSearch および関連モジュールを一時的に無効にし、Live Search をインストールします。 次に、手順 4 に進みます。
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch7 Magento_OpenSearch Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
既存 のAdobe Commerceのインストールに Live Search 拡張機能を追加する場合は、次の手順を実行して、ストアフロントの検索結果を提供する Live Search モジュールを無効にします。 手順 4 に進みます。
code language-bash bin/magento module:disable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
Live Search サービス Elasticsearch、バックグラウンドでカタログデータとインデックス製品を同期している間、はストアフロントからの検索要求を引き続き管理します。
-
次を実行します。
code language-bash bin/magento setup:upgrade
-
次の インデクサーが「スケジュールに従って更新」に設定されていることを確認します。
- 製品フィード
- 製品バリアントフィード
- カタログ属性フィード
- 製品価格フィード
- Scopes Web サイトデータフィード
- 範囲顧客グループデータフィード
- カテゴリフィード
- カテゴリ権限フィード
-
新しいCommerce インスタンスに Live Search をインストールする場合は、作業が完了し、2 にスキップできます。 API キーを設定セクション。 Live Search を既存のCommerce インスタンスにインストールする場合は、次の手順に進んでください。
-
次のコマンドを実行して、Live Search 拡張機能を有効にし、OpenSearch を無効にして、
setup
を実行します。code language-bash bin/magento module:enable Magento_LiveSearchAdapter Magento_LiveSearchStorefrontPopover Magento_LiveSearchProductListing
code language-bash bin/magento module:disable Magento_Elasticsearch Magento_Elasticsearch6 Magento_Elasticsearch7 Magento_ElasticsearchCatalogPermissions Magento_InventoryElasticsearch Magento_ElasticsearchCatalogPermissionsGraphQl
code language-bash bin/magento setup:upgrade
Live Search ベータ版のインストール
このベータ版では、🔗 の 3 つの新しい機能が productSearch
クエリでサポートされています。
-
レイヤー検索 – 別の検索コンテキスト内の検索 – この機能を使用すると、検索クエリを最大 2 つのレイヤーで検索できます。 例:
- レイヤー 1 検索 – 「product_attribute_1」で「motor」を検索します。
- レイヤー 2 検索 – 「product_attribute_2」の「品番 123」を検索します。 この例では、「motor」の結果に含まれる「part number 123」を検索します。
レイヤー検索は、以下に説明するように、
startsWith
検索インデックスとcontains
検索インデックスの両方で使用できます。 -
startsWith 検索インデックス付け -
startsWith
インデックス付けを使用して検索します。 この新機能により、次のことが可能になります。- 属性値が特定の文字列で始まる製品の検索。
- 「次で終わる」検索の設定による、買い物客での属性値が特定の文字列で終わる製品の検索。 「次で終わる」検索を有効にするには、製品属性を逆に取り込む必要があり、API 呼び出しも逆の文字列にする必要があります。
-
contains search indexation -contains indexation を使用して属性を検索します。 この新機能により、次のことが可能になります。
-
大きい文字列内でのクエリの検索。 例えば、買い物客が「HAPE-123」という文字列で製品番号「PE-123」を検索するとします。
- 注意:この検索タイプは、オートコンプリート検索を実行する既存の フレーズ検索とは異なります。 例えば、製品属性値が「outdoor pants」の場合、フレーズ検索は「out pan」に対する応答を返しますが、「or ants」に対する応答は返しません。 ただし、「を含む」検索では、「または ants」に対する応答が返されます。
-
これらの新しい条件により、検索クエリのフィルタリングメカニズムが強化され、検索結果を絞り込むことができます。 これらの新しい条件は、メインの検索クエリには影響しません。
これらの新しい条件は、検索結果ページに実装できます。 例えば、ページに新しいセクションを追加して、買い物客が検索結果をさらに絞り込めるようにすることができます。 買い物客が「製造元」、「部品番号」、「説明」など、特定の製品属性を選択できるようにすることができます。 そこから、contains
条件または startsWith
条件を使用して、これらの属性内を検索します。 検索可能な 属性のリストについては、管理ガイドを参照してください。
-
ベータ版をインストールするには、次の依存関係をプロジェクトに追加します。
code language-bash composer require magento/module-live-search-search-types:"^1.0.0-beta1"
-
変更をコミットして
composer.json
にプッシュし、ファイルcomposer.lock
クラウドプロジェクトにプッシュします。 詳細情報。このベータ版では、管理者に Autocomplete、Contains、Starts with の Search types チェックボックスが追加されています。 また、
productSearch
GraphQL API を更新して、これらの新しい検索機能を組み込みます。 -
管理者で、検索可能にする 製品属性を設定すると、その属性の検索機能を指定します。例えば、次を含む (デフォルト)や 次で始まる などです。 Contains に対して有効にする属性を最大 6 つ指定し、Starts with に対して有効にする属性を最大 6 つ指定できます。 ベータ版の場合、管理者はこの制限を強制しませんが、API 検索では強制されます。
-
新しい
contains
およびstartsWith
の検索機能を使用して Live Search API 呼び出しを更新する方法については、 開発者向けドキュメントを参照してください。
フィールドの説明
Autocomplete
Autocomplete
では、 検索フィルターで contains
を使用できます。 ここで、contains
の検索クエリは、オートコンプリートタイプの検索応答を返します。 Adobeでは、通常 50 文字を超える説明フィールドに、このタイプの検索を使用することをお勧めします。Starts with
startsWith
を使用します。2. API キーの設定
Adobe Commerce API キーとそれに関連する秘密鍵は、Adobe Commerceのインストールに接続する Live Search めに必要です。 API キーは、Commerce のライセンス所有者のアカウントで生成および管理され、開発者またはシステムインテグレーターと共有できます。 その後、開発者は、ライセンス所有者に代わって SaaS データスペースを作成および管理できます。 既に一連の API キーがある場合は、それらを再生成する必要はありません。
API キーを設定する方法については、Commerce サービスコネクタの記事を参照してください。
3. カタログデータを同期する synchronize-catalog-data
Live Search は、カタログ・データをAdobeの SaaS インフラストラクチャに移動します。 データにインデックスが作成され、検索結果はこのインデックスからストアフロントに直接配信されます。 サイズと複雑さに応じて、インデックス作成に 30 分から数時間かかる場合があります。
カタログ データを SaaS サービスに初期同期するには、次のコマンドをこの順序で実行します。
bin/magento saas:resync --feed productattributes
bin/magento saas:resync --feed products
bin/magento saas:resync --feed scopesCustomerGroup
bin/magento saas:resync --feed scopesWebsite
bin/magento saas:resync --feed prices
bin/magento saas:resync --feed productoverrides
bin/magento saas:resync --feed variants
bin/magento saas:resync --feed categories
bin/magento saas:resync --feed categoryPermissions
これらのコマンドを実行すると、カタログ データの SaaS サービスへの初期同期が開始されます。
cron
ために実行されてから、プロセスには少なくとも 1 時間かかる場合があります。同期の進行状況の監視
データ管理ダッシュボードを使用して、同期および共有されるデータを表示できます。 このダッシュボードは、ストアフロントの製品データの可用性に関する貴重なインサイトを提供し、買い物客に迅速に表示できるようにします。
また、Commerce CLI およびデータ書き出し拡張機能のログを使用して、同期コマンドを実行し、同期プロセスのトラブルシューティングを行うこともできます。
今後の製品アップデート
初回同期後、製品の増分更新がストアフロント検索で使用できるようになるまで最大 15 分かかる場合があります。 詳しくは、インデックス作成ドキュメントの 製品アップデートのストリーミングを参照してください。
4. データが書き出されたことを確認する verify-export
カタログデータがAdobe Commerceから書き出され、Live Search と同期されているかどうかを確認するには、次のいずれかの方法を使用します。
-
次の表のエントリを探します。
cde_products_feed
cde_product_attributes_feed
note note NOTE table does not exist
エラーが発生した場合は、catalog_data_exporter_products
テーブルとcatalog_data_exporter_product_attributes
テーブルでエントリを探します。 これらのテーブル名は、4.2.1 より前の Live Search バージョンで使用されます。 -
GraphQL playground をデフォルトのクエリで使用して、次の点を確認してください。
- 返される製品数は、ストア表示で期待される数に近くなります。
- ファセットが返されます。
その他のヘルプについては、サポートナレッジベースの Live Search 同期されていないカタログを参照してください。
5. データを設定する
製品データを正しく設定すると、顧客に適した検索結果が得られます。 このセクションでは、製品リストウィジェットを有効にし、カテゴリを割り当てます。
製品リストウィジェットの有効化
Live Search 4.0.0 以降をインストールすると、製品リストへのウィジェットはデフォルトで有効になります。 ウィジェットを有効にすると、検索結果ページとカテゴリ参照製品リストページで別の UI コンポーネントが使用されます。 この UI コンポーネントは、Catalog Service API を直接呼び出すことで、応答時間を短縮します。
バージョン 4.0.0 以降の Live Search がある場合は、手動で製品一覧ウィジェットを有効にする必要があります。
-
管理者 から、Stores/Settings/Configuration に移動します。
-
「Live Search」で、「Storefront Features」を選択します。
-
Enable Product Listing Widgets を
Yes
に設定します。
この設定を変更すると、Page cache is invalidated
というメッセージが表示されます。 変更内容を保存するには、Magentoキャッシュをフラッシュする必要があります。
-
次のいずれかの操作を行って、 キャッシュ管理ページにアクセスします。
- ワークスペースの上にあるメッセージ内の「Cache Management」リンクをクリックします。
- 管理者 サイドバーで、System/Tools/Cache Management に移動します。
-
Configuration Cache Type を選択し、「Flush Magento Cache」をクリックします。
ストアフロントに対する変更は、キャッシュをフラッシュした直後に行われます。
カテゴリの割り当て
Live Search で返された製品は、 カテゴリに割り当てられている必要があります。 例えば Luma では、製品が「男性」、「女性」、「歯車」などのカテゴリに分類されます。 サブカテゴリも「トップス」、「ボトムス」、「ウォッチポイント」に設定されます。 これらのカテゴリの割り当てにより、フィルタリング時の精度が向上します。
6.接続をテストする test-connection
カタログデータを SaaS にして、テストを行い、次のシナリオで製品データが返されることを確認します。
- Search ボックスは正しく結果を返します
- カテゴリの参照で結果が正しく返される
- ファセットは、検索結果ページでフィルターとして使用できます
すべてが正しく動作している場合は、Live Search がインストールされ、接続され、使用できる状態になっています。
ストアフロントで問題が発生した場合は、var/log/system.log
ファイルで API 通信の失敗やサービス側のエラーを確認します。
ファイアウォールを通過する Live Search を許可するには、commerce.adobe.io
を許可リストに追加します。
7. イベントでデータが取り込まれていることを確認する
サイトにデプロイしたストアフロントイベントが機能していることを確認します。 これは、ヘッドレス実装で特に重要です。
- リク Live Search ストに必要な イベントを確認します。
- ライブ検索ダッシュボードに実稼動以外の環境のデータが表示されていることを確認します。
- イベント コレクションの検証. このページは Product Recommendations ガイドですが、検証手順は Live Search にも適用されます。
8. ストアフロントに合わせたカスタマイズ
Live Search 拡張機能のインストール、データの同期、検証および設定が完了していること。 次の手順では、Live Search ウィジェットがストアのルックアンドフィールに合っていることを確認します。
ポップオーバーウィジェットと PLP ウィジェットのスタイルを設定するには、必要に応じてカスタム CSS ルールを定義します。 ポップオーバー要素のスタイル設定および 製品一覧表示ページウィジェットを参照してください。
ウィジェットの機能を拡張する場合は、各のソースコードを公開リポジトリで入手できます。
このシナリオでは、独自のニーズに合わせてJavaScriptをカスタマイズし、カスタムコードを CDN でホストできます。 このカスタムスクリプトは、Live Search サービスと通信し、通常と同様の結果を返すので、ウィジェットの機能を制御できます。
Live Search を更新中 update
Live Search を更新する前に、コマンドラインから次のコマンドを実行して、インストールされている Live Search のバージョンを確認します。
composer show magento/module-live-search | grep version
Live Search を更新するには、コマンドラインから次のコマンドを実行します。
composer update magento/live-search --with-dependencies
3.1.1 から 4.0.0 などのメジャーバージョンにアップデートするには、プロジェクトのルート Composer .json
ファイルを次のように編集します。
-
現在インストールされている
magento/live-search
のバージョンが3.1.1
以下で、バージョン4.0.0
以降にアップグレードする場合は、アップグレードの前に次のコマンドを実行します。code language-bash bin/magento module:enable Magento_AdvancedSearch
現在インストールされている
magento/live-search
バージョンについて詳しくは、次のコマンドを実行してください。code language-bash composer show magento/live-search
-
ルート
composer.json
ファイルを開き、magento/live-search
を検索します。 -
require
セクションで、バージョン番号を次のように更新します。code language-json "require": { ... "magento/live-search": "^4.0", ... }
-
保存
composer.json
ます。 コマンドラインから次のコマンドを実行します。code language-bash composer update magento/live-search --with-dependencies
Live Search のアンインストール uninstall
Live Search をアンインストールするには、 モジュールのアンインストールを参照してください。
Live Search パッケージ packages
Live Search 拡張機能は、次のパッケージで構成されています。
module-live-search
module-live-search-adapter
- カテゴリの参照 – ストアフロント 上部のナビゲーションから検索サービスにリクエストをルーティングします。
- グローバル検索 – ストアフロントの右上にある クイック検索ボックスからリクエストを Live Search サービスにルーティングします。
module-live-search-storefront-popover
Live Search 依存関係 dependencies
Live Search 拡張機能をインストールするための Composer メタパッケージには、次のモジュール依存関係が含まれています。
magento/module-saas-catalog
magento/module-saas-category
magento/module-saas-category-permissions
magento/module-saas-product-override
magento/module-saas-product-variant
magento/module-saas-price
magento/module-saas-scopes
magento/module-bundle-product-data-exporter
magento/module-catalog-inventory-data-exporter
magento/module-catalog-url-rewrite-data-exporter
magento/module-configurable-product-data-exporter
magento/module-parent-product-data-exporter
magento/module-gift-card-product-data-exporter
magento/module-bundle-product-override-data-exporter
data-services
services-id
高度な概念
以下のセクションでは、Live Search と Catalog Service を使用する際の、より高度なトピックを示します。
エンドポイント
Live Search は、https://catalog-service.adobe.io/graphql
のエンドポイントを介して通信します。
Live Search は全製品データベースにアクセスできないので、Live Search GraphQL API とCommerce Core GraphQL API は同等ではありません。
Adobeでは、SaaS API (特にカタログサービスエンドポイント)を直接呼び出すことをお勧めします。
- Commerce データベース/Graphql プロセスをバイパスすることで、パフォーマンスを向上させ、プロセッサー負荷を軽減します。
- Catalog Service フェデレーションを活用して、1 つのエンドポイントから Live Search、Catalog Service、Product Recommendations を呼び出します。
一部のユースケースでは、製品の詳細や同様のケースについては、Catalog Service に問い合わせることをお勧めします。 詳細については、「refineProduct」を参照してください。
カスタムヘッドレス実装がある場合は、Live Search のリファレンス実装を確認してください。
検索アダプター、Luma ウィジェット、AEM CIFウィジェットなどの標準コンポーネントを使用しない場合、ユーザーインタラクションデータの自動収集はデフォルトでは機能しません。 Adobe Senseiでは、この収集されたデータを使用して、インテリジェントなマーチャンダイジングとパフォーマンスのトラッキングを行います。 この問題を解決するには、このデータ収集をヘッドレスで実装するカスタムソリューションを開発する必要があります。
Live Search の最新バージョンでは、既に Catalog Service が使用されています。
言語サポート
Live Search ウィジェットは次の言語をサポートしています。
Commerce管理者の言語設定がサポートされている言語と一致することが検出された場合、デフォルトではその言語に設定されます。 それ以外の場合、ウィジェットのデフォルト値は英語になります。 管理者で、Stores/Settings/Configuration/General/Country Options に移動して、言語設定を指定します。
また、管理者は 検索インデックスの言語を設定して、検索結果を向上させることもできます。
ウィジェットコードリポジトリー
製品一覧表示ページウィジェットとライブ検索フィールドウィジェットのコードは、GitHub からダウンロードできます。
コードにアクセスできる開発者は、その動作と外観を完全にカスタマイズできます。 独自のサーバーでコードをホストしますが、Live Search サービスは引き続き使用します。
データエクスポート拡張機能
Live Search を有効にすると、データ書き出し拡張機能によってCommerce アプリケーションと Live Search の間でCommerce データが同期されます。 このプロセスにより、最新のCommerce データをストアフロントで確実に利用できるようになります。 管理者では、データ管理ダッシュボードを使用して同期ステータスを確認できます。 Commerce CLI とログを使用して、データのエクスポートプロセスを管理およびトラブルシューティングできます。 詳しくは、 データの書き出しガイドを参照してください。
Inventory management
Live Search は、Commerce(旧称:マルチSourceインベントリ、MSI)で Inventory management 機能をサポートしています。 完全なサポートを有効にするには、依存関係モジュールをバージョン 102.2.0 以降に 更新する必要 commerce-data-export
あります。
Live Search は、商品がInventory management内で使用可能かどうかを示すブール値を返しますが、どのソースが在庫を持っているかに関する情報は含まれません。
価格インデクサー
Live Search のお客様は、SaaS 価格インデクサーを使用できます。これにより、価格変更の更新と同期時間が短縮されます。
価格サポート
ライブ検索ウィジェットは、Adobe Commerceでサポートされているすべての価格タイプではなく、ほとんどの価格タイプをサポートしています。
現在、基本価格がサポートされています。 サポートされていない高度な価格は次のとおりです。
- コスト
- 広告の最低価格
より複雑な価格計算については、API メッシュを参照してください。
価格フォーマットは、Commerce インスタンス内の次のロケール設定をサポートしています。ストア /設定/ 設定 /一般/ 一般 / ローカルオプション / ロケール
ヘッドレスストアフロントのサポート
オプションで、アプリケーションの既存のGraphQL範囲を拡張する module-data-services-graphql
モジュールをインストールし、ストアフロントの行動データ収集に必要なフィールドを含める必要が生じる場合があります。
composer require magento/module-data-services-graphql
このモジュールは、GraphQL クエリにコンテキストを追加します。
dataServicesStorefrontInstanceContext
dataServicesMagentoExtensionContext
dataServicesStoreConfigurationContext
B2B サポート
Live Search では、追加の 制限事項を追加して 🔗B2B 機能をサポートしています。
PWAサポート
Live Search はPWA Studioで動作しますが、他のCommerceの実装と比較すると、わずかな違いがあります。 検索や製品リストのページなどの基本的な機能は Venia で機能しますが、Graphql の一部の並べ替えが正しく機能しない場合があります。 パフォーマンスの違いもあります。
- Live Search の現在のPWA実装では、ネイティブのCommerce ストアフロントに比べて、検索結果を返すた Live Search の処理時間が長くなります。
- PWAの Live Search は イベント処理をサポートしていません。 その結果、検索レポートとインテリジェントマーチャンダイジングがPWAのストアフロントで機能しません。
- PWA Studio を使用する場合、GraphQLは
description
、name
、short_description
に対する直接フィルタリングをサポートしていませんが、これらのフィールドはより一般的なフィルターで返すことができます。
Live Search をPWA Studioで使用する場合、インテグレーターは次の要件も満たす必要があります。
-
livesearch-storefront-utils をインストールします。
-
storeDetails
オブジェクトにenvironmentId
を設定します。code language-javascript const storeDetails: StoreDetailsProps = { environmentId: <Storefront_ID>, websiteCode: "base", storeCode: "main_website_store", storeViewCode: "default", searchUnitId: searchUnitId, config: { minQueryLength: 5, pageSize: 8, currencySymbol: "$", }, };
の Cookie
Live Search は、基本機能の一部としてユーザーインタラクションデータを収集し、このデータを保存するために cookie が使用されます。 ユーザー情報を収集する場合、ユーザーは Cookie の保存に同意する必要があります。 Live Search と Product Recommendations はデータストリームを共有するので、同じ cookie メカニズムになります。 詳しくは、Cookie 制限の処理を参照してください。