Aperçu
La fonction d’exportation d’index exporte les documents de recherche indexés dans OpenSearch vers des fichiers HTML ou JSON sur le système de fichiers local. Cette fonctionnalité est utile pour :
Créer des sauvegardes statiques du contenu indexé
Générer des copies hors ligne des documents à des fins d’archivage
Construire des pages de résultats de recherche statiques
Migrer du contenu vers d’autres systèmes
Les fichiers exportés conservent la structure de chemin URL d’origine des documents sources, ce qui facilite la gestion du contenu exporté.
Fonctionnement
Lorsque le travail d’exportation d’index s’exécute, il effectue les opérations suivantes :
Récupération des documents : Récupère les documents depuis OpenSearch par lots efficaces grâce à l’API scroll
Traitement du contenu : Extrait les champs du document (titre, contenu, URL, etc.) et supprime les champs exclus
Création de la structure des répertoires : Reproduit la structure de chemin URL dans le répertoire d’exportation à partir du champ
urldu documentGénération des fichiers : Crée les fichiers (HTML ou JSON) contenant le contenu du document
Traitement jusqu’à la fin : Poursuit le traitement par lots jusqu’à ce que l’index soit entièrement exporté
L’API scroll permet de traiter efficacement de grands ensembles de documents sans problèmes de mémoire.
Note
Les documents concernés par l’exportation sont ceux de l’index de recherche (fess.search). Les documents ne possédant pas de champ url sont ignorés.
Propriétés de configuration
Configurez la fonction d’exportation d’index dans fess_config.properties :
| Propriété | Valeur par défaut | Description |
|---|---|---|
index.export.path | /var/lib/fess/export | Répertoire où les fichiers exportés sont stockés |
index.export.exclude.fields | cache | Champs à exclure de l’exportation (séparés par des virgules) |
index.export.scroll.size | 100 | Nombre de documents traités par lot |
index.export.format | html | Format des fichiers exportés (html ou json) |
Exemple de configuration :
Activation du travail
Le travail d’exportation d’index est enregistré comme travail planifié mais est désactivé par défaut.
Pour activer le travail :
Connectez-vous à la console d’administration Fess
Naviguez vers Système > Planificateur
Trouvez Index Exporter dans la liste des travaux
Cliquez pour modifier les paramètres du travail
Définissez le calendrier à l’aide d’une expression cron
Enregistrez les paramètres
Exemples d’expressions cron :
0 0 2 * * ?- Exécuter quotidiennement à 2h000 0 3 ? * SUN- Exécuter chaque dimanche à 3h000 0 0 1 * ?- Exécuter le premier jour de chaque mois à minuit
Filtrage de requête personnalisé
Vous pouvez personnaliser le travail d’exportation pour n’exporter que des documents spécifiques en modifiant le script du travail.
Le script par défaut du travail Index Exporter exporte tous les documents :
Pour ajouter un filtre de requête personnalisé :
Naviguez vers Système > Planificateur
Modifiez le Index Exporter
Modifiez le script du travail pour inclure un filtre de requête
Exemple avec filtre de date (exporter uniquement les documents des 7 derniers jours) :
Exemple avec filtre de site (exporter uniquement les documents d’un site spécifique) :
Exemple pour exporter au format JSON :
Structure des fichiers exportés
Les fichiers exportés sont organisés pour refléter la structure URL d’origine.
Par exemple, un document avec l’URL https://example.com/docs/guide/intro.html serait exporté vers :
Le chemin du fichier est déterminé à partir du champ url du document selon les règles suivantes :
Le nom d’hôte devient le répertoire de premier niveau. Si l’URL ne contient pas de nom d’hôte,
_localest utilisé.Si le chemin se termine par un slash ou si le document n’a pas de chemin, un fichier index (
index.htmlouindex.json) est créé.Si le chemin ne contient pas d’extension de fichier, l’extension correspondant au format (
.htmlou.json) est ajoutée.Les caractères interdits dans les noms de fichiers (
< > : " | ? * \) sont remplacés par_, et chaque composant du chemin est tronqué à 200 caractères au maximum.Si l’URL ne peut pas être analysée ou qu’une traversée de répertoire est détectée, le fichier est enregistré dans le répertoire
_invalidavec la valeur de hachage de l’URL comme nom de fichier.
Pour le format HTML, chaque fichier est généré avec la structure suivante :
Champ
title→ élément<title>Champ
lang→ attributlangde l’élément<html>Champ
content→ corps de l’élément<body>Autres champs non exclus → balises
<meta name="fess:nom_du_champ" content="valeur">dans<head>
Pour le format JSON, chaque fichier est un objet JSON contenant tous les champs non exclus :
Bonnes pratiques
Considérations de stockage
Assurez-vous d’avoir suffisamment d’espace disque dans le répertoire d’exportation
Envisagez d’utiliser un stockage dédié pour les grands ensembles de documents
Implémentez un nettoyage régulier des anciennes exportations si vous effectuez des exportations périodiques
Conseils de performance
Ajustez
index.export.scroll.sizeen fonction de la taille des documents : - Documents de petite taille : taille de lot plus grande (200-500) - Documents de grande taille : taille de lot plus petite (50-100)Planifiez les exportations pendant les périodes de faible utilisation
Surveillez les E/S disque pendant les opérations d’exportation
Recommandations de sécurité
Définissez les permissions de fichiers appropriées sur le répertoire d’exportation
N’exposez pas le répertoire d’exportation directement sur le web
Envisagez de chiffrer le contenu exporté s’il contient des informations sensibles
Auditez régulièrement l’accès aux fichiers exportés
Dépannage
Le travail d’exportation ne s’exécute pas
Vérifiez que le travail est activé dans le Planificateur
Vérifiez la syntaxe de l’expression cron
Consultez les journaux Fess pour les messages d’erreur :
Répertoire d’exportation vide
Confirmez que des documents existent dans l’index
Vérifiez les permissions du chemin d’exportation
Vérifiez que le filtre de requête (si personnalisé) correspond aux documents
L’exportation échoue en cours de route
Vérifiez l’espace disque disponible
Consultez les journaux pour les erreurs de mémoire ou de délai d’attente
Envisagez de réduire
scroll.sizepour les documents volumineuxVérifiez les paramètres de délai d’attente du contexte scroll d’OpenSearch
Fichiers non accessibles
Vérifiez les permissions des fichiers :
ls -la /var/lib/fess/exportVérifiez que le propriétaire du répertoire correspond à l’utilisateur du processus Fess
Confirmez que les politiques SELinux ou AppArmor autorisent l’accès
Sujets connexes
Gestion des index - Procédures de sauvegarde et restauration d’index
Configuration des journaux - Configuration de la journalisation pour le dépannage