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:truereturneras 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:
-
Aktivera hybridfiltrering genom att lägga till egenskapen
cfGlobalVersion=1i/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. -
Testa i en lägre miljö innan du börjar använda programmet.
-
Ändra frågefilter. Använd operatorn
STARTS_WITHför_pathi stället förEQUALSi 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.
-
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 } } } -
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. -
Sök efter ogiltiga innehållsfragment där de associerade innehållsmodellerna saknas.
-
Rensa bort ogiltiga fragment eller gör dem giltiga genom att koppla dem till lämpliga modeller.
-
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.
-
Använd listfrågor sparsamt när endast ett fragment behövs. Använd riktade frågor (till exempel
pageByPath).
Relaterad läsning
- Uppdatera dina innehållsfragment för optimerad GraphQL-filtrering i användarhandboken för AEM as a Cloud Service.
- Optimera GraphQL-frågor i AEM-dokumentationen.