GraphQL「includeVariations」在AEMaaCS中使用篩選器傳回空白
在AEMaaCS中,套用其他篩選器(例如includeVariations:true)時,GraphQL查詢中的_path引數會傳回空白結果。 使用特定篩選器擷取內容片段變數時,就會發生這種情況。 若要修正此問題,請啟用混合篩選並修改查詢篩選器。
說明 description
環境
- 產品: Adobe Experience Manager (AEM) as a Cloud Service — 網站
- 執行個體: 開發
問題/症狀
- 使用
includeVariations:true會傳回正確的結果。 - 新增篩選器(例如
_path)會導致空白的查詢輸出。 - 使用篩選器擷取內容片段變數時發生
解決方法 resolution
若要解決問題,請依照下列步驟進行:
-
將
cfGlobalVersion=1屬性新增到/content/dam以啟用混合式篩選。 它改善了查詢效能並修正了路徑型篩選問題。 如需詳細資訊,請參閱使用AEM GraphQL混合篩選檔案。 -
在套用至生產環境之前,請先在較低的環境中測試它。
-
修改查詢篩選器。 在運算式中使用
STARTS_WITH的_path運運算元,而非EQUALS:code language-none [ { value: "/content/dam/content-fragments/sites/example-path/", _operator: STARTS_WITH } ]注意:如果啟用混合篩選,此因應措施將無法運作。
-
如果需要多個變數,請使用別名明確查詢每個變數,如下所示:
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 } } } -
若要最佳化查詢設計,如果只需要一個特定變數,請使用變數引數直接在查詢中指定它,而不是依賴
includeVariations: true。 -
檢查缺少關聯內容模型的無效內容片段。
-
清理無效的片段,或將它們與適當的模型建立關聯以使其有效。
-
啟用混合篩選或進行變更後,請驗證作者和發佈執行個體上的記錄,以確認設定已正確套用。
-
當只需要一個片段時,請謹慎使用清單查詢;偏好目標查詢(例如,
pageByPath)。
相關閱讀
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f