Aperçu
La fonction d’exportation d’index vous permet d’exporter des documents de recherche indexés dans OpenSearch vers des fichiers HTML 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 navigation et la gestion du contenu exporté.
Fonctionnement
Lorsque le travail d’exportation d’index s’exécute, il effectue le processus suivant :
Interroger les documents : Récupère les documents depuis OpenSearch en utilisant l’API scroll pour un traitement par lots efficace
Traiter le contenu : Extrait les champs du document (titre, contenu, URL, etc.)
Créer la structure des répertoires : Réplique la structure du chemin URL dans le répertoire d’exportation
Générer les fichiers HTML : Crée des fichiers HTML contenant le contenu du document
Continuer jusqu’à la fin : Traite tous les documents par lots jusqu’à ce que l’index soit entièrement exporté
L’API scroll assure une gestion efficace des grands ensembles de documents sans problèmes de mémoire.
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/fess/export | Répertoire où les fichiers exportés sont stockés |
index.export.exclude.fields | cache | Liste des champs à exclure séparés par des virgules |
index.export.scroll.size | 100 | Nombre de documents traités par lot |
Exemple de configuration :
index.export.path=/data/fess/export
index.export.exclude.fields=cache,boost,role
index.export.scroll.size=200
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 Export Job 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.
Pour ajouter un filtre de requête personnalisé :
Naviguez vers Système > Planificateur
Modifiez le Index Export Job
Modifiez le script du travail pour inclure un filtre de requête
Exemple de script avec filtre de date :
import org.codelibs.fess.exec.IndexExportJob
def job = new IndexExportJob()
job.query = "created:>=now-7d"
job.execute()
Exemple de script avec filtre de site :
import org.codelibs.fess.exec.IndexExportJob
def job = new IndexExportJob()
job.query = "url:*example.com*"
job.execute()
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 :
/var/fess/export/
└── example.com/
└── docs/
└── guide/
└── intro.html
Chaque fichier HTML exporté contient :
Titre du document
Corps du contenu principal
Métadonnées (date de dernière modification, type de contenu, etc.)
Référence à l’URL d’origine
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 plus petits : taille de lot plus grande (200-500) - Documents plus grands : 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 :
tail -f /var/log/fess/fess.log | grep IndexExport
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
# Vérifier le nombre de documents dans l'index
curl -X GET "localhost:9201/fess.YYYYMMDD/_count?pretty"
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/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 des paramètres de journalisation pour le dépannage