[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}

即時搜尋目錄未同步

本文針對Adobe Commerce問題提供解決方案,解決您在使用Live Search擴充功能時,目錄資料無法正確同步的問題。

受影響的產品和版本

  • Adobe Commerce 2.4.x (已安裝Live Search擴充功能)

問題

您的目錄資料未正確同步,或已新增產品,但未出現在搜尋結果中。 您也可能在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"}]}}

NOTE
資料表名稱catalog_data_exporter_productscatalog_data_exporter_product_attributes現在稱為cde_products_feedcde_product_attributes_feed (截至Live Search版本4.2.1)。若商家使用4.2.1之前的版本,請在舊資料表名稱catalog_data_exporter_productscatalog_data_exporter_product_attributes中尋找資料。

要再現的步驟

  1. 依照使用者檔案之安裝Live Search >設定API金鑰中的說明,設定並連線您Adobe Commerce執行個體的Live Search。
  2. 30分鐘後,依照使用者檔案中的安裝即時搜尋>驗證匯出說明驗證匯出的目錄資料。
  3. 30分鐘後,依照使用者檔案中的安裝即時搜尋>測試連線所述測試連線。

  1. 將新產品新增至目錄。
  2. 從Magento索引器+ cron執行後15-20分鐘,嘗試使用產品名稱或其他可搜尋屬性執行搜尋查詢,以將資料同步至後端服務。

預期結果

  • 可驗證匯出的目錄資料
  • 連線成功
  • 新產品會出現在搜尋結果中。

實際結果

無法驗證匯出的目錄,而且/或者因為API金鑰已變更,所以未建立連線。

解決方案

您有數個動作可以嘗試並修正目錄同步問題。

等待套用變更

設定並連線後,可能要花30分鐘以上的時間才會建立ES (Elasticsearch)中的索引並傳回搜尋結果。 後續的一次性產品更新預計會在幾分鐘內編列索引。

同步特定SKU的產品資料

如果特定SKU的產品資料未正確同步,請執行以下操作:

  1. 使用下列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';
    
  2. 如果您沒有看到正確的資料,請嘗試使用下列命令重新編列索引,並在步驟1重新執行SQL查詢以驗證資料:

    code language-bash
    bin/magento indexer:reindex cde_products_feed
    
  3. 如果您還是沒有看到正確的資料,請建立支援票證

檢查上次產品匯出的時間戳記

  1. 如果您在cde_products_feed中看到正確的資料,請使用下列SQL查詢來檢查上次匯出的時間戳記。 它應該在modified_at時間戳記之後:

    code language-sql
    select * from scopes_website_data_exporter;
    
  2. 如果時間戳記較舊,您可以等待下一個cron執行,或使用下列命令自行觸發:

    code language-bash
    bin/magento cron:run --group=saas_data_exporter
    
  3. 等待<>時間(增量更新的時間)。 如果您還是看不到資料,請建立支援票證

同步特定屬性代碼

如果特定屬性代碼的產品屬性資料未正確同步,請執行以下操作:

  1. 使用下列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>';
    
  2. 如果您沒有看到正確的資料,請使用下列命令重新索引,然後在步驟1中重新執行SQL查詢以驗證資料。

    code language-bash
    bin/magento indexer:reindex cde_product_attributes_feed
    
  3. 如果您還是沒有看到正確的資料,請建立支援票證

檢查上次產品屬性匯出的時間戳記

如果您在cde_product_attributes_feed中看到正確的資料:

  1. 使用下列SQL查詢檢查上次匯出的時間戳記。 它應在modified_at時間戳記之後。

    code language-sql
    select * from scopes_website_data_exporter;
    
  2. 如果時間戳記較舊,您可以等待下一個cron執行,或使用下列命令自行觸發:

    code language-bash
    bin/magento cron:run --group=saas_data_exporter
    
  3. 等待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。

IMPORTANT
在其他情況下使用--cleanup-feed選項可能會導致資料遺失和資料同步問題。 只有在您有新的空白環境、Adobe團隊完成資料空間清理作業後,或您使用—dry-run選項執行saas:resync命令時,才使用它。 在其他情況下使用--cleanup-feed選項可能會導致資料遺失和資料同步問題。

相關閱讀

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a