GraphQL „includeVariations“ gibt in AEMaaCS bei leeren Filtern zurück.
In AEMaaCS gibt der includeVariations:true-Parameter in einer GraphQL-Abfrage leere Ergebnisse zurück, wenn ein zusätzlicher Filter (z. B. _path) angewendet wird. Dies geschieht beim Abrufen von Inhaltsfragmentvarianten mit bestimmten Filtern. Um dieses Problem zu beheben, aktivieren Sie die Hybridfilterung und ändern Sie den Abfragefilter.
Beschreibung description
Umgebung
- Produkt: Adobe Experience Manager (AEM) as a Cloud Service - Sites
- instance: Development
Problem/Symptome
- Die Verwendung von
includeVariations:truegibt korrekte Ergebnisse zurück. - Das Hinzufügen von Filtern (z. B.
_path) führt zu einer leeren Abfrageausgabe. - Tritt beim Abrufen von Inhaltsfragmentvarianten mit Filtern auf
Auflösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
-
Aktivieren Sie die hybride Filterung, indem Sie die
cfGlobalVersion=1Eigenschaft zu/content/damhinzufügen. Dies verbessert die Abfrageleistung und behebt pfadbasierte Filterprobleme. Weitere Informationen finden in der Dokumentation Verwenden der hybriden Filterung mit AEM GraphQL . -
Testen Sie sie in einer niedrigeren Umgebung, bevor Sie sie auf die Produktion anwenden.
-
Ändern von Abfragefiltern. Verwenden Sie den
STARTS_WITH-Operator für_pathanstelle vonEQUALSin Ausdrücken:code language-none [ { value: "/content/dam/content-fragments/sites/example-path/", _operator: STARTS_WITH } ]Hinweis: Diese Problemumgehung funktioniert nicht, wenn die Hybrid-Filterung aktiviert ist.
-
Wenn mehrere Varianten erforderlich sind, fragen Sie jede Variante explizit mit Aliassen ab, wie unten dargestellt:
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 } } } -
Um den Abfrageentwurf zu optimieren, wenn nur eine bestimmte Variante benötigt wird, geben Sie sie direkt in der Abfrage mit dem Variantenparameter an, anstatt sich auf
includeVariations: truezu verlassen. -
Suchen Sie nach ungültigen Inhaltsfragmenten, bei denen die zugehörigen Inhaltsmodelle fehlen.
-
Bereinigen Sie ungültige Fragmente oder machen Sie sie gültig, indem Sie sie mit entsprechenden Modellen verknüpfen.
-
Nachdem Sie die hybride Filterung aktiviert oder Änderungen vorgenommen haben, überprüfen Sie die Protokolle sowohl auf der Autoren- als auch auf der Veröffentlichungsinstanz, um sicherzustellen, dass die Einstellungen korrekt angewendet werden.
-
Verwenden Sie Listenabfragen sparsam, wenn nur ein Fragment benötigt wird. Bevorzugen Sie zielgerichtete Abfragen (z. B.
pageByPath).
Verwandtes Lesen
- Aktualisieren Ihrer Inhaltsfragmente für optimierte GraphQL-) im AEM as a Cloud Service-Benutzerhandbuch.
- Optimieren von GraphQL-Abfragen in der Dokumentation zu AEM.