AEM as a Cloud Service: avisos de “Consulta de texto completo sem índice para filtro” ao pesquisar em caminhos separados
Este artigo explica a causa e o impacto de consultas frequentes de texto completo sem índice para avisos de filtro r no Adobe Experience Manager ao executar consultas de texto completo em subárvores separadas.
Descrição description
Ambiente
- Adobe Experience Manager (AEM) as a Cloud Service (AEMasaCS) (todas as versões)
- Adobe Experience Manager
Problema/Sintomas
Ao executar consultas JCR-SQL2 de texto completo que pesquisam em duas ou mais subárvores disjuntas usando um OR entre ISDESCENDANTNODE() restrições de caminho, o aviso a seguir aparece nos logs, mesmo que um índice Lucene personalizado esteja definido e marcado:
WARN org.apache.jackrabbit.oak.query.QueryImpl Fulltext query without index for filter ... no results will be returned
- O aviso é registrado aproximadamente 3000 vezes por dia.
- Exemplo de consulta que aciona o aviso:
SELECT *
FROM [ nt:base] AS node
WHERE ...
AND (
isdescendantnode(node,'/content/site-path') OR
isdescendantnode(node,'/var/pim/green/products')
)
OPTION (index tag datevCommon)
- O problema não ocorre ao pesquisar em uma única subárvore.
- O impacto no desempenho não é observado, mas o ruído de registro é uma preocupação.
- Os dois caminhos consultados não compartilham um ancestral comum.
Causa
O aviso é gerado durante a fase inicial de planejamento de consulta do Oak, em que a forma de consulta combinada (texto completo + OU em caminhos separados) é avaliada com custos de índice infinitos, acionando o aviso. Em seguida, o Oak reescreve a consulta internamente e usa corretamente o índice personalizado para execução. O aviso é considerado enganoso e não reflete o uso real do índice ou o desempenho da consulta.
Resolução resolution
Siga estas etapas para resolver o problema:
- Revise o padrão de consulta para confirmar se ele usa um
ORentre restrições de caminhoISDESCENDANTNODE()disjuntas e um índice Lucene personalizado com uma marca de índice. - Consulte o problema upstream do Apache Jackrabbit Oak
OAK-12270para investigação e atualizações em andamento. - Nenhuma ação é necessária por parte do cliente, pois o aviso é resultado do planejamento interno de consultas da Oak e não indica um problema real de indexação ou desempenho.
- Monitore o Oak Jira para quaisquer alterações futuras relacionadas à supressão de aviso ou ajustes de registro.