L'implementazione della ricerca semplice è costituita dai materiali del laboratorio di Adobe Summit AEM Search Demystified. Questa pagina contiene i materiali di questo laboratorio. Per una visita guidata del laboratorio, vedere la cartella di lavoro Lab nella sezione Presentazione di questa pagina.
I collegamenti riportati di seguito presuppongono l’installazione dei pacchetti iniziali su AEM Author all’indirizzohttp://localhost:4502
Correzioni e chiarimenti dalle discussioni di laboratorio e risposte alle domande successive dei partecipanti.
Come interrompere la reindicizzazione?
La reindicizzazione può essere arrestata tramite la MBean IndexStats disponibile tramite AEM console Web > JMX
abortAndPause()
per interrompere la reindicizzazione. Questo blocca l'indice per un'ulteriore reindicizzazione fino a quando resume()
non viene richiamato.resume()
riavvierà il processo di indicizzazione.Come possono gli indici oak supportare più tenant?
Oak supporta il posizionamento di indici attraverso la struttura del contenuto, e questi indici si indicizzeranno solo all’interno di tale sottoalbero. Ad esempio, /content/site-a/oak:index/cqPageLucene
può essere creato per indicizzare il contenuto solo sotto /content/site-a
.
Un approccio equivalente consiste nell'utilizzare le proprietà includePaths
e queryPaths
su un indice in /oak:index
. Esempio:
/oak:index/siteAcqPageLucene@includePaths=/content/site-a
/oak:index/siteAcqPageLucene@queryPaths=/content/site-a
Le considerazioni di questo approccio sono le seguenti:
/oak:index/cqPageLucene
) indicizzeranno anche i dati, con conseguente inserimento di duplicati e costo di utilizzo del disco.Dove si trova un elenco di tutti gli analizzatori disponibili?
Oak espone un set di elementi di configurazione dell'analizzatore lucene-fornisce da utilizzare in AEM.
Come cercare pagine e risorse nella stessa query?
La novità di AEM 6.3 è la capacità di eseguire query per più tipi di nodo nella stessa query fornita. La seguente query QueryBuilder. Tieni presente che ogni "sottoquery" può risolvere il proprio indice, pertanto in questo esempio la sottoquery cq:Page
viene risolta in /oak:index/cqPageLucene
e la sottoquery dam:Asset
viene risolta 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 seguente piano di query e query:
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 la query e i risultati tramite QueryBuilder Debugger e AEM Chrome Plug-in.
Come eseguire la ricerca su più percorsi nella stessa query?
La novità di AEM 6.3 è la capacità di eseguire query su più percorsi nella stessa query fornita. La seguente query QueryBuilder. Tieni presente che ogni "sottoquery" può risolvere al 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 seguente piano di query
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 la query e i risultati tramite QueryBuilder Debugger e AEM Chrome Plug-in.