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:true gibt 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:

  1. Aktivieren Sie die hybride Filterung, indem Sie die cfGlobalVersion=1 Eigenschaft zu /content/dam hinzufügen. Dies verbessert die Abfrageleistung und behebt pfadbasierte Filterprobleme. Weitere Informationen finden ​ in der Dokumentation ​ Verwenden der hybriden Filterung mit AEM GraphQL .

  2. Testen Sie sie in einer niedrigeren Umgebung, bevor Sie sie auf die Produktion anwenden.

  3. Ändern von Abfragefiltern. Verwenden Sie den STARTS_WITH-Operator für _path anstelle von EQUALS in 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.

  4. 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
             }
           }
         }
    
  5. 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: true zu verlassen.

  6. Suchen Sie nach ungültigen Inhaltsfragmenten, bei denen die zugehörigen Inhaltsmodelle fehlen.

  7. Bereinigen Sie ungültige Fragmente oder machen Sie sie gültig, indem Sie sie mit entsprechenden Modellen verknüpfen.

  8. 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.

  9. Verwenden Sie Listenabfragen sparsam, wenn nur ein Fragment benötigt wird. Bevorzugen Sie zielgerichtete Abfragen (z. B. pageByPath).

Verwandtes Lesen

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