ライブ検索カタログが同期されていません
この記事では、ライブサーチ拡張機能を使用する際にカタログデータが正しく同期されないAdobe Commerceの問題に対する解決策を提供します。
影響を受ける製品とバージョン
- ライブサーチ拡張機能がインストールされたAdobe Commerce 2.4.x
イシュー
カタログデータが正しく同期されていないか、新しい商品が追加されましたが、検索結果に表示されません。 var/log/exception.logで次のエラーが発生する場合もあります。
Magento_LiveSearch: An error occurred in search backend. {"result":{"errors":[{"message":"Exception while fetching data (/productSearch) : No index was found for this request"}]}}
catalog_data_exporter_productsとcatalog_data_exporter_product_attributesは、Live Search バージョン 4.2.1の時点でcde_products_feedとcde_product_attributes_feedと呼ばれるようになりました。 4.2.1より前のバージョンのマーチャントの場合は、古いテーブル名catalog_data_exporter_productsとcatalog_data_exporter_product_attributesのデータを探します。複製する手順
- Adobe Commerce インスタンスのライブサーチを設定して接続する( ライブサーチのインストール/API キーの設定をユーザードキュメントで参照)。
- 30分後、ユーザードキュメントの「 ライブサーチのインストール/書き出しを検証」の説明に従って、書き出されたカタログデータを確認します。
- 30分後、ユーザードキュメントの ライブサーチのインストール/接続のテスト で説明されているように、接続をテストします。
Or
- カタログに新商品を追加します。
- Magento インデクサー+ cronを実行してデータをバックエンドサービスに同期させた時点から15 ~ 20分後に、製品名またはその他の検索可能な属性を使用して検索クエリを実行してみてください。
期待される結果
- エクスポートしたカタログデータは検証可能です
- 接続が成功しました
- 検索結果に新しい商品が表示されます。
実際の結果
書き出されたカタログを検証できないか、API キーが変更されたため、接続が確立されません。
Solution
カタログの同期に関する問題を修正するには、いくつかの方法があります。
変更が適用されるのを待ちます
設定して接続すると、ES (Elasticsearch)のインデックスが作成され、検索結果が返されるまでに30分以上かかることがあります。 その後の1回限りの製品アップデートは、数分以内にインデックス化される予定です。
特定のSKUの製品データの同期
製品データが特定のSKUに対して正しく同期されていない場合は、次の操作を行います。
-
次のSQL クエリを使用して、
feed_data列に期待するデータがあることを確認してください。 また、modified_atタイムスタンプを書き留めます。code language-sql SELECT * FROM cde_products_feed WHERE json_extract(feed_data, '$.sku') = '<your_sku>' AND json_extract(feed_data, '$.storeViewCode') = '<your_ store_view_code>';例:
code language-sql SELECT * FROM cde_products_feed WHERE json_extract(feed_data, '$.sku') = '24-MB04' AND json_extract(feed_data, '$.storeViewCode') = 'default'; -
正しいデータが表示されない場合は、次のコマンドを使用してインデックスを再作成し、手順1でSQL クエリを再実行してデータを検証します。
code language-bash bin/magento indexer:reindex cde_products_feed -
それでも正しいデータが表示されない場合は、 サポートチケットを作成してください。
最後の製品エクスポートのタイムスタンプを確認する
-
cde_products_feedに正しいデータが表示された場合は、次のSQL クエリを使用して、前回の書き出しのタイムスタンプを確認します。modified_atタイムスタンプの後にする必要があります:code language-sql select * from scopes_website_data_exporter; -
タイムスタンプが古い場合は、次のcron実行を待つか、次のコマンドを使用して自分でトリガーできます。
code language-bash bin/magento cron:run --group=saas_data_exporter -
<>時間(増分更新の時間)待ちます。 それでもデータが表示されない場合は、 サポートチケットを作成してください。
特定の属性コードを同期
製品属性データが特定の属性コードに対して正しく同期されない場合は、次の操作を行います。
-
次のSQL クエリを使用して、
feed_data列に期待するデータがあることを確認してください。 また、modified_atタイムスタンプを書き留めます。code language-sql select * from cde_product_attributes_feed where json_extract(feed_data, '$.attributeCode') = '<your_attribute_code>' and store_view_code = '<your_ store_view_code>'; -
正しいデータが表示されない場合は、次のコマンドを使用してインデックスを再作成し、手順1のSQL クエリを再実行してデータを検証します。
code language-bash bin/magento indexer:reindex cde_product_attributes_feed -
それでも正しいデータが表示されない場合は、 サポートチケットを作成してください。
最後の製品属性エクスポートのタイムスタンプを確認する
cde_product_attributes_feedに正しいデータが表示される場合:
-
次のSQL クエリを使用して、前回の書き出しのタイムスタンプを確認します。
modified_atタイムスタンプの後にする必要があります。code language-sql select * from scopes_website_data_exporter; -
タイムスタンプが古い場合は、次のcron実行を待つか、次のコマンドを使用して自分でトリガーできます。
code language-bash bin/magento cron:run --group=saas_data_exporter -
15~20分待ちます(増分更新の時間)。 それでもデータが表示されない場合は、 サポートチケットを作成してください。
API設定の変更後に同期
(既知の問題) API設定を変更した結果、データスペース IDが変更され、カタログの変更が同期されていないことが判明した場合は、次のコマンドを実行してフィードを再同期します。
bin/magento saas:resync --feed productattributes --cleanup-feed
bin/magento saas:resync --feed products --cleanup-feed
bin/magento saas:resync --feed scopesCustomerGroup --cleanup-feed
bin/magento saas:resync --feed scopesWebsite --cleanup-feed
bin/magento saas:resync --feed prices --cleanup-feed
bin/magento saas:resync --feed productOverrides --cleanup-feed
bin/magento saas:resync --feed variants --cleanup-feed
bin/magento saas:resync --feed categories --cleanup-feed
bin/magento saas:resync --feed categoryPermissions --cleanup-feed
ライブ検索インデックスの再インデックスをリクエストするために、サポートリクエスト を送信します。 問題の説明に、System > Services > Commerce Services Connectorの下の管理パネルにあるデータスペース/環境IDを含めます。
--cleanup-feed オプションを使用すると、データの損失やデータ同期の問題が発生する可能性があります。 新しい空の環境がある場合、Adobe チームがデータスペースのクリーンアップ処理を完了した後、または—dry-run オプションを指定してsaas:resync コマンドを実行した場合にのみ使用してください。 他の場合に--cleanup-feed オプションを使用すると、データの損失やデータ同期の問題が発生する可能性があります。関連トピックス
- オンボーディングライブサーチ (ユーザードキュメント)
- ログを確認し、Adobe Commerce SaaS データ書き出しと同期のトラブルシューティング()(Adobe Commerce SaaS データ書き出しガイド)
- Commerce実装プレイブックのデータベーステーブルを修正するためのベストプラクティス