O GraphQL "includeVariations" retorna vazio com filtros no AEMaaCS
No AEMaaCS, o parâmetro includeVariations:true em uma consulta GraphQL retorna resultados vazios quando um filtro adicional (por exemplo, _path) é aplicado. Isso acontece ao buscar variações de fragmento de conteúdo com filtros específicos. Para corrigir esse problema, habilite a filtragem híbrida e modifique o filtro de consulta.
Descrição description
Ambiente
- Produto: Adobe Experience Manager (AEM) as a Cloud Service - Sites
- Instância: Desenvolvimento
Problema/Sintomas
- O uso de
includeVariations:trueretorna resultados corretos. - Adicionar filtros (por exemplo,
_path) resulta em uma saída de consulta vazia. - Ocorre ao buscar variações de fragmento de conteúdo com filtros
Resolução resolution
Para resolver o problema, siga estas etapas:
-
Habilite a filtragem híbrida adicionando a propriedade
cfGlobalVersion=1a/content/dam. Ele melhora o desempenho da consulta e corrige problemas de filtragem baseados em caminho. Consulte a documentação Usar a filtragem híbrida do AEM GraphQL para obter mais detalhes. -
Teste-o em um ambiente inferior antes de aplicá-lo à produção.
-
Modifique filtros de consulta. Use o operador
STARTS_WITHpara_pathem vez deEQUALSem expressões:code language-none [ { value: "/content/dam/content-fragments/sites/example-path/", _operator: STARTS_WITH } ]Observação: essa solução alternativa não funcionará se a filtragem híbrida estiver habilitada.
-
Se várias variações forem necessárias, consulte explicitamente cada variação usando aliases, conforme mostrado abaixo:
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 } } } -
Para otimizar o design da consulta, se apenas uma variação específica for necessária, especifique-a diretamente na consulta usando o parâmetro de variação em vez de depender de
includeVariations: true. -
Verifique se há fragmentos de conteúdo inválidos nos quais os modelos de conteúdo associados estejam ausentes.
-
Limpe fragmentos inválidos ou torne-os válidos associando-os a modelos apropriados.
-
Depois de ativar a filtragem híbrida ou fazer alterações, verifique os logs nas instâncias do autor e de publicação para confirmar se as configurações foram aplicadas corretamente.
-
Use consultas de lista com moderação quando apenas um fragmento for necessário; prefira consultas direcionadas (por exemplo,
pageByPath).
Leitura relacionada
- Atualizando os fragmentos de conteúdo para a filtragem otimizada do GraphQL no guia do usuário do AEM as a Cloud Service.
- Otimizar consultas do GraphQL na documentação do AEM.