Implementierungshandbuch für einfache Suchen

Die Implementierung der einfachen Suche ist das Material aus dem Adobe Summit-Labor AEM Suche Demystified. Diese Seite enthält die Materialien aus diesem Labor. Eine Führung durch das Labor erhalten Sie in der Arbeitsmappe für den Lab im Abschnitt Präsentation dieser Seite.

Sucharchitektur - Überblick

Präsentationsmaterialien

Lesezeichen

Tools

Kapitel

Die folgenden Kapitellinks gehen von der Annahme aus, dass Anfängliche Pakete werden auf der AEM-Autoreninstanz unterhttp://localhost:4502

Pakete

Erstpakete

Kapitelpakete

Referenzierte Materialien

Korrekturen und Folgemaßnahmen

Korrekturen und Erläuterungen aus den Labordiskussionen und Antworten auf Folgefragen von Teilnehmern.

  1. Wie kann ich die Neuindizierung stoppen?

    Die Neuindizierung kann über das MBean IndexStats gestoppt werden, das über verfügbar ist. AEM Web-Konsole > JMX

  2. Wie können Oak-Indizes mehrere Mandanten unterstützen?

    Oak unterstützt das Platzieren von Indizes über die Inhaltsstruktur, und diese Indizes werden nur innerhalb dieser Unterstruktur indiziert. Beispiel /content/site-a/oak:index/cqPageLucene kann nur unter erstellt werden, um Inhalte zu indizieren /content/site-a.

    Ein gleichwertiger Ansatz ist die Verwendung der includePaths und queryPaths Eigenschaften auf einem Index unter /oak:index. Beispiel:

    • /oak:index/siteAcqPageLucene@includePaths=/content/site-a
    • /oak:index/siteAcqPageLucene@queryPaths=/content/site-a

    Bei diesem Ansatz werden folgende Aspekte berücksichtigt:

    • Abfragen MÜSSEN eine Pfadbeschränkung angeben, die dem Abfragepfadbereich des Index entspricht oder dort untergeordnet ist.
    • Umfassende Indizes (z. B. /oak:index/cqPageLucene) indiziert auch die Daten, was zu doppelter Erfassung und zu Kosten der Festplattennutzung führt.
    • Kann eine doppelte Konfigurationsverwaltung erfordern (z. B. Hinzufügen von gleichen indexRules über mehrere Mandanten-Indizes hinweg, wenn sie denselben Abfragesätzen entsprechen müssen)
    • Dieser Ansatz wird am besten auf der AEM-Veröffentlichungsstufe für die benutzerdefinierte Site-Suche bereitgestellt, da es in der AEM-Autoreninstanz ü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 stellt eine Reihe von Lucene-bereitgestellten Analyzer-Konfigurationselementen zur Verwendung in AEM bereit.

  4. Wie kann in derselben Abfrage nach Seiten und Assets gesucht werden?

    Neu in AEM 6.3 ist die Möglichkeit, mehrere Knotentypen in derselben bereitgestellten Abfrage abzufragen. Die folgende QueryBuilder-Abfrage. Beachten Sie, dass jede "Sub-Abfrage"in einen eigenen Index aufgelöst werden kann. In diesem Beispiel wird das cq:Page sub-query aufgelöst zu /oak:index/cqPageLucene und dam:Asset sub-query aufgelöst zu /oak:index/damAssetLucene.

    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
    

    Ergebnisse im folgenden Abfrage- und Abfrageplan:

    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) *:* */
    

    Abfrage und Ergebnisse durchsuchen über QueryBuilder-Debugger und AEM Chrome-Plug-in.

  5. Wie kann in derselben Abfrage über mehrere Pfade gesucht werden?

    Neu in AEM 6.3 ist die Möglichkeit, mehrere Pfade in derselben bereitgestellten Abfrage abzufragen. Die folgende QueryBuilder-Abfrage. Beachten Sie, dass jede "Sub-Abfrage"in einen eigenen Index aufgelöst werden kann.

    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
    

    Ergebnisse im folgenden Abfrage- und Abfrageplan

    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]) */
    

    Abfrage und Ergebnisse durchsuchen über QueryBuilder-Debugger und AEM Chrome-Plug-in.

Auf dieser Seite