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.

Überblick über die Sucharchitektur

Präsentationsmaterialien bookmarks

Lesezeichen bookmarks-1

Tools tools

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.

  1. Wie lässt sich eine Neuindizierung stoppen?

    Die Neuindizierung kann über IndexStats MBean gestoppt werden, verfügbar über AEM Web Console > JMX.

  2. 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-azu indizieren.

    Ein gleichwertiger Ansatz ist die Anwendung der Eigenschaften includePaths und queryPaths 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.
  3. Wo ist eine Liste aller verfügbaren Analyzer?

    Oak macht eine Reihe von Lucene-bereitgestellten Analyzer-Konfigurationselementen zur Verwendung in AEM verfügbar.

  4. 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 Unterabfrage dam: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.

  5. 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.

recommendation-more-help
bb44cebf-d964-4e3c-b64e-ce882243fe4d