GraphQL "includeVariations" returnerar tom med filter i AEMaaCS

I AEMaaCS returnerar parametern includeVariations:true i en GraphQL-fråga tomma resultat när ett ytterligare filter (till exempel _path) används. Detta inträffar när innehållsfragmentvariationer hämtas med specifika filter. Åtgärda problemet genom att aktivera hybridfiltrering och ändra frågefiltret.

Beskrivning description

Miljö

  • Produkt: Adobe Experience Manager (AEM) as a Cloud Service - Webbplatser
  • Instans: Utveckling

Problem/symtom

  • Om du använder includeVariations:true returneras korrekta resultat.
  • Om du lägger till filter (till exempel _path) skapas tomma frågeutdata.
  • Inträffar när innehållsfragmentvariationer hämtas med filter

Upplösning resolution

Så här löser du problemet:

  1. Aktivera hybridfiltrering genom att lägga till egenskapen cfGlobalVersion=1 i /content/dam. Det förbättrar frågeprestanda och åtgärdar sökvägsbaserade filtreringsproblem. Mer information finns i dokumentationen för Använd hybridfiltrering för AEM GraphQL.

  2. Testa i en lägre miljö innan du börjar använda programmet.

  3. Ändra frågefilter. Använd operatorn STARTS_WITH för _path i stället för EQUALS i uttryck:

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

    Obs! Den här lösningen fungerar inte om hybridfiltrering är aktiverat.

  4. Om det krävs flera variationer frågar du explicit varje variant med alias, vilket visas nedan:

    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. Om du vill optimera frågedesignen anger du den direkt i frågan med variansparametern i stället för att förlita dig på includeVariations: true, om bara en specifik variant behövs.

  6. Sök efter ogiltiga innehållsfragment där de associerade innehållsmodellerna saknas.

  7. Rensa bort ogiltiga fragment eller gör dem giltiga genom att koppla dem till lämpliga modeller.

  8. När du har aktiverat hybridfiltrering eller gjort ändringar kontrollerar du loggarna på både författare och publiceringsinstanser för att bekräfta att inställningarna har tillämpats korrekt.

  9. Använd listfrågor sparsamt när endast ett fragment behövs. Använd riktade frågor (till exempel pageByPath).

Relaterad läsning

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