Déploiement de l’index personnalisé pour la fonction Rechercher et remplacer (vue Source)
Vue d’ensemble
Ce guide fournit des instructions détaillées sur le déploiement de l’index personnalisé guidesAssetLucene‑1‑custom‑1 sur Adobe Experience Manager (AEM) as a Cloud Service. Bien que la fonction de recherche et de remplacement standard de la vue Auteur fonctionne sans cet index, l’index personnalisé est spécifiquement requis pour activer la fonction de recherche et de remplacement dans la vue Source. La fonction Rechercher et remplacer (vue Source) vous permet de rechercher non seulement le contenu créé visible, mais également la structure XML sous-jacente, y compris les éléments, les balises et les valeurs d’attribut.
Prérequis
Avant de poursuivre le déploiement de l’index, vérifiez que vous disposez des éléments suivants :
- Environnement AEM as a Cloud Service avec AEM Guides installé
- Accès à la base de code de votre projet (référentiel Git)
- Accès à Cloud Manager avec autorisations de déploiement
Définition de l’index
Pour activer la fonction Rechercher et remplacer (vue Source), vous devez déployer un index personnalisé nommé guidesAssetLucene-1-custom-1 dans votre environnement AEM Cloud Service.
Nom de l’index
guidesAssetLucene-1-custom-1
Définition d’index (.content.xml)
Créez la définition d’index suivante dans votre projet sur :
ui.apps/src/main/content/jcr_root/_oak_index/guidesAssetLucene-1-custom-1/.content.xml
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:dam="http://www.day.com/dam/1.0"
xmlns:nt="http://www.jcp.org/jcr/nt/1.0" xmlns:oak="http://jackrabbit.apache.org/oak/ns/1.0"
xmlns:rep="internal"
jcr:mixinTypes="[rep:AccessControllable]"
jcr:primaryType="oak:QueryIndexDefinition"
async="[async,nrt]"
compatVersion="{Long}2"
evaluatePathRestrictions="{Boolean}true"
includedPaths="[/content/dam]"
selectionPolicy="tag"
tags="[ditaSearch]"
type="lucene">
<aggregates jcr:primaryType="nt:unstructured">
<dam:Asset jcr:primaryType="nt:unstructured">
<include0
jcr:primaryType="nt:unstructured"
path="jcr:content/renditions/original/jcr:content"
relativeNode="{Boolean}true"/>
</dam:Asset>
</aggregates>
<analyzers jcr:primaryType="nt:unstructured">
<default jcr:primaryType="nt:unstructured">
<tokenizer
jcr:primaryType="nt:unstructured"
name="Whitespace"/>
</default>
</analyzers>
<indexRules jcr:primaryType="nt:unstructured">
<dam:Asset
jcr:primaryType="nt:unstructured"
indexNodeName="{Boolean}true">
<properties jcr:primaryType="nt:unstructured">
<cqTags
jcr:primaryType="nt:unstructured"
name="jcr:content/metadata/cq:tags"
nodeScopeIndex="{Boolean}true"
propertyIndex="{Boolean}true"
useInSpellcheck="{Boolean}true"
useInSuggest="{Boolean}true"/>
<jcrLastModified
jcr:primaryType="nt:unstructured"
name="jcr:content/jcr:lastModified"
ordered="{Boolean}true"
propertyIndex="{Boolean}true"
type="Date"/>
<jcrCreated
jcr:primaryType="nt:unstructured"
name="jcr:created"
ordered="{Boolean}true"
propertyIndex="{Boolean}true"
type="Date"/>
<guidesParentMaps
jcr:primaryType="nt:unstructured"
name="jcr:content/guidesParentMaps"
propertyIndex="{Boolean}true"/>
<guidesDirectParentMaps
jcr:primaryType="nt:unstructured"
name="jcr:content/guidesDirectParentMaps"
propertyIndex="{Boolean}true"/>
<ditaClass
jcr:primaryType="nt:unstructured"
name="jcr:content/metadata/dita_class"
propertyIndex="{Boolean}true"/>
<nodeNameLowerCase
jcr:primaryType="nt:unstructured"
function="fn:lower-case(fn:name())"
ordered="{Boolean}true"
propertyIndex="{Boolean}true"/>
<cqDriveLock
jcr:primaryType="nt:unstructured"
name="jcr:content/cq:driveLock"
propertyIndex="{Boolean}true"
ordered="{Boolean}true"/>
<docState
jcr:primaryType="nt:unstructured"
name="jcr:content/metadata/docstate"
propertyIndex="{Boolean}true"
ordered="{Boolean}true"/>
<jcrPath
jcr:primaryType="nt:unstructured"
function="fn:path()"
ordered="{Boolean}true"/>
<dcTitleLowerCase
jcr:primaryType="nt:unstructured"
function="fn:lower-case(jcr:first(jcr:content/metadata/@dc:title))"
propertyIndex="{Boolean}true"
ordered="{Boolean}true"/>
<dcTitle
jcr:primaryType="nt:unstructured"
name="jcr:content/metadata/dc:title"
propertyIndex="{Boolean}true"/>
</properties>
</dam:Asset>
</indexRules>
<tika jcr:primaryType="nt:unstructured">
<mimeTypes jcr:primaryType="nt:unstructured">
<application jcr:primaryType="nt:unstructured">
<xml
jcr:primaryType="nt:unstructured"
mappedType="application/dita+xml"/>
</application>
<text jcr:primaryType="nt:unstructured">
<markdown
jcr:primaryType="nt:unstructured"
mappedType="text/markdown+source"/>
</text>
</mimeTypes>
</tika>
</jcr:root>
Étapes de déploiement
Pour obtenir des instructions détaillées sur le déploiement d’index personnalisés vers AEM as a Cloud Service, consultez la page Recherche et indexation de contenu - AEM as a Cloud Service.
Points importants pour cet index
Lorsque vous suivez le guide de déploiement, utilisez les informations suivantes pour l’index de recherche et de remplacement :
-
Nom de l’index :
guidesAssetLucene-1-custom-1 -
Type d’index : index entièrement personnalisé (il ne s’agit pas d’une personnalisation de l’index OOTB)
-
Emplacement :
ui.apps/src/main/content/jcr_root/_oak_index/guidesAssetLucene-1-custom-1/.content.xml -
Propriétés de package requises :
noIntermediateSaves=trueallowIndexDefinitions=true
Réindexation
La réindexation est gérée automatiquement par AEM as a Cloud Service lorsque vous déployez l’index via le pipeline CI/CD de Cloud Manager.
L’indexation est généralement gérée automatiquement. Cependant, si les anciennes données ne peuvent toujours pas faire l’objet de recherches, même après un déploiement correct et la fin du processus d’indexation, une réindexation manuelle de l’index doit être effectuée une seule fois.
À quoi s’attendre ?
- La tâche d’indexation démarrera automatiquement après le déploiement.
- Vous pouvez surveiller la progression sur la page de création de Cloud Manager.
- L’environnement reste entièrement opérationnel pendant l’indexation.
Vérification
Une fois le déploiement et l’indexation terminés, vérifiez que l’index fonctionne correctement.
Vérifier le déploiement de l’index
Dans votre environnement de développement (si CRXDE Lite est disponible) :
- Accédez à
/oak:index/guidesAssetLucene-1-custom-1. - Vérifiez que le nœud existe avec la configuration attendue.
Tester la fonction Rechercher et remplacer
La vérification principale consiste à tester la fonctionnalité :
- Ouvrez AEM Guides.
- Accédez à Outils > Guides > Rechercher et remplacer dans le référentiel.
- Configurez une recherche de texte dans vos fichiers DITA ou Markdown.
- Vérifiez que les résultats de la recherche sont correctement renvoyés.
- Testez la fonctionnalité de remplacement sur un fichier de test.