GraphQL「includeVariations」在AEMaaCS中使用篩選器傳回空白

在AEMaaCS中,套用其他篩選器(例如includeVariations:true)時,GraphQL查詢中的_path引數會傳回空白結果。 使用特定篩選器擷取內容片段變數時,就會發生這種情況。 若要修正此問題,請啟用混合篩選並修改查詢篩選器。

說明 description

環境

  • 產品: Adobe Experience Manager (AEM) as a Cloud Service — 網站
  • 執行個體: 開發

問題/症狀

  • 使用includeVariations:true會傳回正確的結果。
  • 新增篩選器(例如_path)會導致空白的查詢輸出。
  • 使用篩選器擷取內容片段變數時發生

解決方法 resolution

若要解決問題,請依照下列步驟進行:

  1. cfGlobalVersion=1屬性新增到/content/dam以啟用混合式篩選。 它改善了查詢效能並修正了路徑型篩選問題。 如需詳細資訊,請參閱使用AEM GraphQL混合篩選檔案。

  2. 在套用至生產環境之前,請先在較低的環境中測試它。

  3. 修改查詢篩選器。 在運算式中使用STARTS_WITH_path運運算元,而非EQUALS

    code language-none
    [
                {
                    value: "/content/dam/content-fragments/sites/example-path/",
                     _operator: STARTS_WITH
                 }
            ]
    

    注意:如果啟用混合篩選,此因應措施將無法運作。

  4. 如果需要多個變數,請使用別名明確查詢每個變數,如下所示:

    code language-none
    query($path: String!) {
           standard: pageByPath(_path: $path, variation: "standard") {
             item {       _path
               title       _variation
             }
           }
           premier: pageByPath(_path: $path, variation: "premier") {
             item {       _path
               title       _variation
             }
           }
         }
    
  5. 若要最佳化查詢設計,如果只需要一個特定變數,請使用變數引數直接在查詢中指定它,而不是依賴includeVariations: true

  6. 檢查缺少關聯內容模型的無效內容片段。

  7. 清理無效的片段,或將它們與適當的模型建立關聯以使其有效。

  8. 啟用混合篩選或進行變更後,請驗證作者和發佈執行個體上的記錄,以確認設定已正確套用。

  9. 當只需要一個片段時,請謹慎使用清單查詢;偏好目標查詢(例如,pageByPath)。

相關閱讀

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f