AEM as a Cloud Service: Warnungen „Volltextabfrage ohne Filterindex“ bei der Suche nach unterschiedlichen Pfaden
In diesem Artikel werden die Ursache und die Auswirkungen häufiger Volltextabfragen ohne Filterindexr -Warnungen in Adobe Experience Manager beim Ausführen von Volltextabfragen über unzusammenhängende Unterstrukturen hinweg erläutert.
Beschreibung description
Umgebung
- Adobe Experience Manager (AEM) as a Cloud Service (AEMasaCS) (alle Versionen)
- Adobe Experience Manager
Problem/Symptome
Beim Ausführen von JCR-SQL2-Volltextabfragen, die über zwei oder mehr getrennte Unterstrukturen hinweg suchen, mithilfe eines OR zwischen ISDESCENDANTNODE() Pfadbeschränkungen wird die folgende Warnung in den Protokollen angezeigt, obwohl ein benutzerdefinierter Luceneindex definiert und getaggt ist:
WARN org.apache.jackrabbit.oak.query.QueryImpl Fulltext query without index for filter ... no results will be returned
- Die Warnung wird ca. 3000-mal pro Tag protokolliert.
- Beispielabfrage mit Triggern für die Warnung:
SELECT *
FROM [ nt:base] AS node
WHERE ...
AND (
isdescendantnode(node,'/content/site-path') OR
isdescendantnode(node,'/var/pim/green/products')
)
OPTION (index tag datevCommon)
- Das Problem tritt nicht auf, wenn innerhalb einer einzelnen Unterstruktur gesucht wird.
- Es werden keine Leistungseinbußen beobachtet. Protokollgeräusche sind jedoch ein Problem.
- Die beiden abgefragten Pfade haben keinen gemeinsamen Vorgänger.
Ursache
Die Warnung wird während der anfänglichen Abfrageplanungsphase von Oak generiert, in der die kombinierte Abfrageform (Volltext + ODER über disjunkte Pfade hinweg) mit unendlichen Indexkosten ausgewertet wird, was die Warnung auslöst. Oak schreibt die Abfrage dann intern um und verwendet den benutzerdefinierten Index korrekt zur Ausführung. Die Warnung gilt als irreführend und spiegelt nicht die tatsächliche Indexnutzung oder die Abfrageleistung wider.
Lösung resolution
Führen Sie zur Behebung des Problems folgende Schritte aus:
- Überprüfen Sie das Abfragemuster, um sicherzustellen, dass es einen
ORüber disjunkteISDESCENDANTNODE()und einen benutzerdefinierten Lucene-Index mit einem Index-Tag hinweg verwendet. - Laufende Untersuchungen und Aktualisierungen sind in der Upstream
OAK-12270Apache Jackrabbit Oak-Anfrage verfügbar. - Auf Kundenseite ist keine Aktion erforderlich, da die Warnung ein Ergebnis der internen Abfrageplanung von Oak ist und nicht auf ein echtes Indizierungs- oder Leistungsproblem hinweist.
- Überwachen Sie den Oak Jira auf zukünftige Änderungen in Bezug auf die Unterdrückung von Warnungen oder Protokollanpassungen.