DocumentazioneAEMTutorial su AEMTutorial su AEM Sites

Guida all’implementazione della ricerca semplice

Ultimo aggiornamento: 5 maggio 2025
  • Si applica a:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • Argomenti:
  • Ricerca

Creato per:

  • Intermedio
  • Esperto
  • Sviluppatore

L'implementazione della ricerca semplice è costituita dai materiali di Adobe Summit lab AEM Search Demystified. Questa pagina contiene i materiali di questo laboratorio. Per una visita guidata del laboratorio, visualizzare la cartella di lavoro del laboratorio nella sezione Presentazione di questa pagina.

Panoramica dellarchitettura di ricerca

Materiale della presentazione

  • Cartella di lavoro Lab
  • Presentazione

Segnalibri

Strumenti

  • Gestione indice
  • Spiega query
  • CRXDE Lite > /oak:index/cqPageLucene
  • Gestione pacchetti CRX
  • Debugger QueryBuilder
  • Generatore definizione indice Oak

Capitoli

I collegamenti ai capitoli seguenti presuppongono che i pacchetti iniziali siano installati in AEM Author all'indirizzohttp://localhost:4502

  • Capitolo 1
  • Capitolo 2
  • Capitolo 3
  • Capitolo 4
  • Capitolo 5
  • Capitolo 6
  • Capitolo 7
  • Capitolo 8
  • Capitolo 9

Pacchetti

Pacchetti iniziali

  • Tag
  • Pacchetto di applicazioni per la ricerca semplice

Pacchetti capitolo

  • Soluzione capitolo 1
  • Capitolo 2 soluzione
  • Capitolo 3 soluzione
  • Capitolo 4 soluzione
  • Impostazione capitolo 5
  • Soluzione capitolo 5
  • Capitolo 6 soluzione
  • Capitolo 9 soluzione

Materiali di riferimento

  • Archivio Github
  • Modelli Sling
  • Esportatore modello Sling
  • API QueryBuilder
  • Plug-in di AEM Chrome (Pagina documentazione)

Correzioni e follow-up

Correzioni e chiarimenti delle discussioni di laboratorio e risposte alle domande di follow-up dei partecipanti.

  1. Come interrompere la reindicizzazione?

    La reindicizzazione può essere interrotta tramite la voce MBean IndexStats disponibile tramite Console web AEM > JMX

    • http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dasync%2Ctype%3DIndexStats

      • Eseguire abortAndPause() per interrompere la reindicizzazione. L'indice verrà bloccato per essere reindicizzato finché non verrà richiamato resume().
      • L'esecuzione di resume() riavvierà il processo di indicizzazione.
    • Documentazione: https://jackrabbit.apache.org/oak/docs/query/indexing.html#async-index-mbean

  2. In che modo gli indici OAK supportano più tenant?

    Oak supporta il posizionamento di indici all’interno della struttura del contenuto e questi indici indicizzeranno solo all’interno di tale sottostruttura. Ad esempio, è possibile creare /content/site-a/oak:index/cqPageLucene per indicizzare il contenuto solo in /content/site-a.

    Un approccio equivalente consiste nell'utilizzare le proprietà includePaths e queryPaths in un indice in /oak:index. Ad esempio:

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

    Le considerazioni relative a questo approccio sono le seguenti:

    • Le query DEVONO specificare una restrizione di percorso uguale all'ambito del percorso di query dell'indice oppure essere discendenti di.
    • Anche indici con ambito più ampio (ad esempio /oak:index/cqPageLucene) indicizzeranno i dati, con conseguente inserimento di duplicati e costo di utilizzo del disco.
    • Può essere necessaria una gestione duplicativa della configurazione (ad es. l’aggiunta degli stessi indexRules a più indici tenant se questi devono soddisfare gli stessi set di query)
    • Questo approccio è consigliato sul livello di pubblicazione di AEM per la ricerca personalizzata del sito, come in AEM Author, in genere le query vengono eseguite in cima alla struttura del contenuto per tenant diversi (ad esempio, tramite OmniSearch); definizioni di indice diverse possono causare comportamenti diversi solo in base alla restrizione del percorso.
  3. Dove si trova un elenco di tutti gli analizzatori disponibili?

    Oak espone un set di elementi di configurazione dell’analizzatore forniti da lucene da utilizzare in AEM.

    • Documentazione di Apache Oak Analyzers

      • Tokenizer
      • Filtri
      • CharFilters
  4. Come cercare pagine e Assets nella stessa query?

    Una novità di AEM 6.3 è la possibilità di eseguire query per più tipi di nodo nella stessa query fornita. La seguente query QueryBuilder. Si noti che ogni "sottoquery" può risolvere nel proprio indice, quindi in questo esempio la sottoquery cq:Page viene risolta in /oak:index/cqPageLucene e la sottoquery dam:Asset in /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
    

    restituisce il piano di query e query seguente:

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

    Esplora query e risultati tramite QueryBuilder Debugger e AEM Chrome Plug-in.

  5. Come eseguire ricerche in più percorsi nella stessa query?

    Una novità di AEM 6.3 è la possibilità di eseguire query su più percorsi nella stessa query fornita. La seguente query QueryBuilder. Tieni presente che ogni "sottoquery" può risolvere nel proprio indice.

    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
    

    restituisce il piano di query e query seguente

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

    Esplora query e risultati tramite QueryBuilder Debugger e AEM Chrome Plug-in.

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