Implementierungshandbuch für die einfache Suche simple-search-implementation-guide
Bei der Implementierung der einfachen Suche handelt es sich um die Materialien vom Adobe Summit Lab „AEM Search Demystified“. Diese Seite enthält die Materialien dieses Labs. Eine Lab-Führung finden Sie in der Lab-Arbeitsmappe im Präsentationsabschnitt dieser Seite.
Präsentationsmaterialien bookmarks
Lesezeichen bookmarks-1
Tools tools
- Index-Manager
- Erläutern der Abfrage
- CRXDE Lite > /oak:index/cqPageLucene
- CRX Package Manager
- QueryBuilder-Debugger
- Oak Index Definition Generator
Kapitel chapters
Bei den folgenden Kapitel-Links wird davon ausgegangen, dass die anfänglichen Pakete in AEM Author unterhttp://localhost:4502
installiert sind.
Pakete packages
Anfängliche Pakete initial-packages
Kapitelpakete chapter-packages
Referenzierte Materialien reference-materials
Korrekturen und Follow-up corrections-and-follow-up
Korrekturen und Erläuterungen aus den Lab-Diskussionen und Antworten auf weitere Fragen von Teilnehmerinnen und Teilnehmern.
-
Wie lässt sich eine Neuindizierung stoppen?
Die Neuindizierung kann über IndexStats MBean gestoppt werden, verfügbar über AEM Web Console > JMX.
-
- Führen Sie
abortAndPause()
aus, um die Neuindizierung abzubrechen. Dadurch wird der Index für eine weitere Neuindizierung so lange gesperrt, bisresume()
aufgerufen wird. - Durch Ausführen von
resume()
wird der Indizierungsprozess neu gestartet.
- Führen Sie
-
Dokumentation: https://jackrabbit.apache.org/oak/docs/query/indexing.html#async-index-mbean
-
-
Wie können Oak-Indizes mehrere Mandanten unterstützen?
Oak unterstützt das Platzieren von Indizes überall in der Inhaltsstruktur, und diese Indizes indizieren nur innerhalb dieser Unterstruktur. Beispielsweise kann
/content/site-a/oak:index/cqPageLucene
erstellt werden, um Inhalte nur unter/content/site-a
zu indizieren.Ein gleichwertiger Ansatz ist die Anwendung der Eigenschaften
includePaths
undqueryPaths
auf einen Index unter/oak:index
. Zum Beispiel:/oak:index/siteAcqPageLucene@includePaths=/content/site-a
/oak:index/siteAcqPageLucene@queryPaths=/content/site-a
Bei diesem Ansatz sind folgende Aspekte zu berücksichtigen:
- Abfragen MÜSSEN eine Pfadbeschränkung angeben, die dem Abfragepfadbereich des Index entspricht, oder diesem untergeordnet sein.
- Umfassendere Indizes (z. B.
/oak:index/cqPageLucene
) indizieren EBENFALLS die Daten, was zu einer doppelten Erfassung und entsprechenden Kosten bei der Festplattennutzung führt. - Gegebenenfalls ist eine doppelte Konfigurationsverwaltung erforderlich (z. B. durch Hinzufügen von identischen indexRules über mehrere Mandanten-Indizes hinweg, wenn sie denselben Abfragesätzen entsprechen müssen).
- Dieser Ansatz ist am besten auf der AEM-Veröffentlichungsebene für die benutzerdefinierte Site-Suche geeignet, da es in AEM Author üblich ist, Abfragen oben in der Inhaltsstruktur für verschiedene Mandanten auszuführen (z. B. über OmniSearch). Unterschiedliche Indexdefinitionen können zu unterschiedlichem Verhalten führen, das nur auf der Pfadbeschränkung basiert.
-
Wo ist eine Liste aller verfügbaren Analyzer?
Oak macht eine Reihe von Lucene-bereitgestellten Analyzer-Konfigurationselementen zur Verwendung in AEM verfügbar.
-
Wie kann in derselben Abfrage nach Seiten und Assets gesucht werden?
In AEM 6.3 gibt es nun die Möglichkeit, mehrere Knotentypen in derselben bereitgestellten Abfrage abzufragen. Ein Beispiel ist die folgende QueryBuilder-Abfrage. Beachten Sie, dass jede Unterabfrage in einen eigenen Index aufgelöst werden kann. Hier wird etwa die Unterabfrage
cq:Page
in/oak:index/cqPageLucene
und die Unterabfragedam:Asset
in/oak:index/damAssetLucene
aufgelöst.code language-plain group.p.or=true group.1_group.type=cq:Page # add all page restrictions to this group group.2_group.type=dam:Asset # add all asset restrictions to this group
Daraus ergeben sich die folgende Abfrage und der folgende Abfrageplan:
code language-plain QUERY:(//element(*, cq:Page) | //element(*, dam:Asset)) PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) *:* */ union [dam:Asset] as [a] /* lucene:damAssetLucene(/oak:index/damAssetLucene) *:* */
Untersuchen Sie die Abfrage und Ergebnisse über den QueryBuilder-Debugger und das AEM-Chrome-Plug-in.
-
Wie kann in derselben Abfrage über mehrere Pfade hinweg gesucht werden?
In AEM 6.3 gibt es nun die Möglichkeit, gewünschte Informationen über mehrere Pfade hinweg in derselben bereitgestellten Abfrage abzufragen. Ein Beispiel ist die folgende QueryBuilder-Abfrage. Beachten Sie, dass jede Unterabfrage in einen eigenen Index aufgelöst werden kann.
code language-plain group.p.or=true group.1_group.type=cq:Page group.1_group.path=/content/docs/en/6-2 # add all page restrictions to this group group.2_group.type=cq:Page group.2_group.path=/content/docs/en/6-3 # add all asset restrictions to this group
Daraus ergeben sich die folgende Abfrage und der folgende Abfrageplan:
code language-plain QUERY: (/jcr:root/content/docs/en/_x0036_-2//element(*, cq:Page) | /jcr:root/content/docs/en/_x0036_-3//element(*, cq:Page)) PLAN: [cq:Page] as [a] /* traverse "/content/docs/en/6-2//*" where isdescendantnode([a], [/content/docs/en/6-2]) */ union [cq:Page] as [a] /* traverse "/content/docs/en/6-3//*" where isdescendantnode([a], [/content/docs/en/6-3]) */
Untersuchen Sie die Abfrage und Ergebnisse über den QueryBuilder-Debugger und das AEM-Chrome-Plug-in.