L’implémentation de la recherche simple est le matériel de laboratoire d’Adobe Summit AEM recherche Demystified. Cette page contient les matériaux de ce laboratoire. Pour une visite guidée du laboratoire, consultez le classeur du laboratoire dans la section Présentation de cette page.
Les liens de chapitre ci-dessous supposent que les modules initiaux sont installés sur l’auteur AEM à l’adressehttp://localhost:4502
Corrections et clarifications des discussions de laboratoire et réponses aux questions de suivi des participants.
Comment arrêter la réindexation ?
La réindexation peut être arrêtée via le MBean IndexStats disponible via AEM Console web > JMX
abortAndPause()
pour abandonner la réindexation. L’index sera ainsi verrouillé pour effectuer une nouvelle réindexation jusqu’à ce que resume()
soit appelé.resume()
redémarre le processus d’indexation.Comment les index Oak peuvent-ils prendre en charge plusieurs clients ?
Oak prend en charge le placement d’index dans l’arborescence de contenu, et ces index ne s’indexent que dans cette sous-arborescence. Par exemple, /content/site-a/oak:index/cqPageLucene
peut être créé pour indexer le contenu uniquement sous /content/site-a
.
Une approche équivalente consiste à utiliser les propriétés includePaths
et queryPaths
sur un index sous /oak:index
. Par exemple :
/oak:index/siteAcqPageLucene@includePaths=/content/site-a
/oak:index/siteAcqPageLucene@queryPaths=/content/site-a
Cette approche doit tenir compte des points suivants :
/oak:index/cqPageLucene
) indexent ÉGALEMENT les données, ce qui entraîne l’ingestion en double et le coût d’utilisation du disque.Où est la liste de tous les analyseurs disponibles ?
Oak expose un ensemble d’éléments de configuration de l’analyseur Lucene-fournit à utiliser dans AEM.
Comment rechercher des pages et des ressources dans la même requête ?
La nouvelle version d’AEM 6.3 est la possibilité de rechercher plusieurs types de noeuds dans la même requête fournie. Requête QueryBuilder suivante. Notez que chaque "sous-requête" peut se résoudre par son propre index. Dans cet exemple, la sous-requête cq:Page
est donc résolue sur /oak:index/cqPageLucene
et la sous-requête dam:Asset
correspond à /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
génère le plan de requête et de requête suivant :
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) *:* */
Explorez la requête et les résultats via QueryBuilder Debugger et AEM Module externe Chrome.
Comment effectuer une recherche sur plusieurs chemins dans la même requête ?
La nouvelle version d’AEM 6.3 est la possibilité d’effectuer des requêtes sur plusieurs chemins dans la même requête fournie. Requête QueryBuilder suivante. Notez que chaque "sous-requête" peut se résoudre par son propre index.
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
entraîne le plan de requête et de requête suivant :
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]) */
Explorez la requête et les résultats via QueryBuilder Debugger et AEM Module externe Chrome.