Présentation
Ce guide explique les paramètres avancés du robot d’indexation de Fess. Pour la configuration de base du robot d’indexation, consultez Configuration de base du robot d’indexation.
Avertissement
Les paramètres de cette page peuvent affecter l’ensemble du système. Lors de la modification des paramètres, testez-les suffisamment avant de les appliquer à l’environnement de production.
Configuration générale
Emplacement des fichiers de configuration
La configuration détaillée du robot d’indexation s’effectue dans les fichiers suivants.
Configuration principale :
/etc/fess/fess_config.properties(ouapp/WEB-INF/classes/fess_config.properties)Configuration de la longueur du contenu :
app/WEB-INF/classes/crawler/contentlength.xmlConfiguration des composants :
app/WEB-INF/classes/crawler/container.xml
Script par défaut
Configure le langage de script par défaut du robot d’indexation.
| Propriété | Description | Par défaut |
|---|---|---|
crawler.default.script | Langage de script du robot d’indexation | groovy |
Pool de threads HTTP
Configuration du pool de threads du robot d’indexation HTTP.
| Propriété | Description | Par défaut |
|---|---|---|
crawler.http.thread_pool.size | Taille du pool de threads HTTP | 0 |
Configuration du traitement des documents
Configuration de base
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.max.site.length | Nombre maximum de lignes du site du document | 100 |
crawler.document.site.encoding | Encodage du site du document | UTF-8 |
crawler.document.unknown.hostname | Valeur de remplacement pour un nom d’hôte inconnu | unknown |
crawler.document.use.site.encoding.on.english | Utiliser l’encodage du site pour les documents en anglais | false |
crawler.document.append.data | Ajouter des données au document | true |
crawler.document.append.filename | Ajouter le nom de fichier au document | false |
Exemple de configuration
Configuration du traitement des mots
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.max.alphanum.term.size | Longueur maximale des mots alphanumériques | 20 |
crawler.document.max.symbol.term.size | Longueur maximale des mots symboles | 10 |
crawler.document.duplicate.term.removed | Suppression des mots en double | false |
Exemple de configuration
Note
L’augmentation de max.alphanum.term.size permet d’indexer complètement les longs ID, tokens, URLs, etc., mais la taille de l’index augmentera.
Configuration du traitement des caractères
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.space.chars | Définition des caractères d’espacement | \u0009\u000A... |
crawler.document.fullstop.chars | Définition des caractères de ponctuation | \u002e\u06d4... |
Exemple de configuration
Configuration des protocoles
Protocoles supportés
| Propriété | Description | Par défaut |
|---|---|---|
crawler.web.protocols | Protocoles d’indexation Web | http,https |
crawler.file.protocols | Protocoles d’indexation de fichiers | file,smb,smb1,ftp,storage,s3,gcs |
Exemple de configuration
Paramètres de variables d’environnement
| Propriété | Description | Par défaut |
|---|---|---|
crawler.data.env.param.key.pattern | Motif de clé de paramètre de variable d’environnement | ^FESS_ENV_.* |
Configuration de robots.txt
| Propriété | Description | Par défaut |
|---|---|---|
crawler.ignore.robots.txt | Ignorer robots.txt | false |
crawler.ignore.robots.tags | Balises robots à ignorer | (vide) |
crawler.ignore.content.exception | Ignorer les exceptions de contenu | true |
Avertissement
Définir crawler.ignore.robots.txt=true peut violer les conditions d’utilisation du site. Soyez prudent lors de l’indexation de sites externes.
Configuration de la gestion des erreurs
| Propriété | Description | Par défaut |
|---|---|---|
crawler.failure.url.status.codes | Codes d’état HTTP considérés comme des échecs | 404 |
Configuration de la surveillance système
| Propriété | Description | Par défaut |
|---|---|---|
crawler.system.monitor.interval | Intervalle de surveillance système (secondes) | 60 |
Configuration des threads actifs
| Propriété | Description | Par défaut |
|---|---|---|
crawler.hotthread.ignore_idle_threads | Ignorer les threads inactifs | true |
crawler.hotthread.interval | Intervalle d’instantané | 500ms |
crawler.hotthread.snapshots | Nombre d’instantanés | 10 |
crawler.hotthread.threads | Nombre de threads surveillés | 3 |
crawler.hotthread.timeout | Timeout | 30s |
crawler.hotthread.type | Type de surveillance | cpu |
Exemple de configuration
Configuration des métadonnées
| Propriété | Description | Par défaut |
|---|---|---|
crawler.metadata.content.excludes | Métadonnées à exclure | resourceName,X-Parsed-By... |
crawler.metadata.name.mapping | Mappage des noms de métadonnées | title=title:string... |
Configuration du robot d’indexation HTML
Configuration XPath
Configuration XPath pour extraire les éléments HTML.
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.html.content.xpath | XPath du contenu | //BODY |
crawler.document.html.lang.xpath | XPath de la langue | //HTML/@lang |
crawler.document.html.digest.xpath | XPath du résumé | //META[@name='description']/@content |
crawler.document.html.canonical.xpath | XPath de l’URL canonique | //LINK[@rel='canonical'][1]/@href |
Exemple de configuration
Exemples de XPath personnalisés
Traitement des balises HTML
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.html.pruned.tags | Balises HTML à supprimer | noscript,script,style,header,footer,aside,nav,a[rel=nofollow] |
crawler.document.html.max.digest.length | Longueur maximale du résumé | 120 |
crawler.document.html.default.lang | Langue par défaut | (vide) |
Exemple de configuration
Filtre de motifs d’URL
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.html.default.include.index.patterns | Motifs d’URL à inclure dans l’index | (vide) |
crawler.document.html.default.exclude.index.patterns | Motifs d’URL à exclure de l’index | (?i).*(css|js|jpeg...) |
crawler.document.html.default.include.search.patterns | Motifs d’URL à inclure dans les résultats de recherche | (vide) |
crawler.document.html.default.exclude.search.patterns | Motifs d’URL à exclure des résultats de recherche | (vide) |
Exemple de configuration
Configuration du robot d’indexation de fichiers
Configuration de base
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.file.name.encoding | Encodage des noms de fichiers | (vide) |
crawler.document.file.no.title.label | Étiquette pour les fichiers sans titre | No title. |
crawler.document.file.ignore.empty.content | Ignorer le contenu vide | false |
crawler.document.file.max.title.length | Longueur maximale du titre | 100 |
crawler.document.file.max.digest.length | Longueur maximale du résumé | 200 |
Exemple de configuration
Traitement du contenu
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.file.append.meta.content | Ajouter les métadonnées au contenu | true |
crawler.document.file.append.body.content | Ajouter le corps au contenu | true |
crawler.document.file.default.lang | Langue par défaut | (vide) |
Exemple de configuration
Filtre de motifs d’URL de fichiers
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.file.default.include.index.patterns | Motifs à inclure dans l’index | (vide) |
crawler.document.file.default.exclude.index.patterns | Motifs à exclure de l’index | (vide) |
crawler.document.file.default.include.search.patterns | Motifs à inclure dans les résultats de recherche | (vide) |
crawler.document.file.default.exclude.search.patterns | Motifs à exclure des résultats de recherche | (vide) |
Exemple de configuration
Configuration du cache
Cache de documents
| Propriété | Description | Par défaut |
|---|---|---|
crawler.document.cache.enabled | Activer le cache de documents | true |
crawler.document.cache.max.size | Taille maximale du cache (octets) | 2621440 (2,5 Mo) |
crawler.document.cache.supported.mimetypes | Types MIME à mettre en cache | text/html |
crawler.document.cache.html.mimetypes | Types MIME traités comme HTML | text/html |
Exemple de configuration
Note
L’activation du cache affiche un lien de cache dans les résultats de recherche, permettant aux utilisateurs de consulter le contenu au moment de l’indexation.
Options JVM
Vous pouvez configurer les options JVM du processus du robot d’indexation.
| Propriété | Description | Par défaut |
|---|---|---|
jvm.crawler.options | Options JVM du robot d’indexation | -Xms128m -Xmx512m... |
Configuration par défaut
Description des principales options
| Option | Description |
|---|---|
-Xms128m | Taille initiale du tas (128 Mo) |
-Xmx512m | Taille maximale du tas (512 Mo) |
-XX:MaxMetaspaceSize=128m | Taille maximale du Metaspace (128 Mo) |
-XX:+UseG1GC | Utiliser le collecteur de déchets G1 |
-XX:MaxGCPauseMillis=60000 | Objectif de temps de pause GC (60 secondes) |
-XX:-HeapDumpOnOutOfMemoryError | Désactiver le vidage du tas en cas d’OutOfMemory |
Exemples de configuration personnalisée
Pour indexer des fichiers volumineux :
Lors du débogage :
Consultez Configuration de la mémoire pour plus de détails.
Optimisation des performances
Optimisation de la vitesse d’indexation
1. Ajustement du nombre de threads
Vous pouvez améliorer la vitesse d’indexation en augmentant le nombre d’indexations parallèles.
Cependant, faites attention à la charge sur le serveur cible.
2. Ajustement des timeouts
Pour les sites à réponse lente, ajustez les timeouts.
3. Exclusion du contenu inutile
La vitesse d’indexation s’améliore en excluant les images, CSS, fichiers JavaScript, etc.
4. Configuration de nouvelle tentative
Ajustez le nombre de nouvelles tentatives et l’intervalle en cas d’erreur.
Optimisation de l’utilisation de la mémoire
1. Ajustement de la taille du tas
2. Ajustement de la taille du cache
3. Exclusion des fichiers volumineux
Consultez Configuration de la mémoire pour plus de détails.
Amélioration de la qualité de l’index
1. Optimisation du XPath
Excluez les éléments inutiles (navigation, publicités, etc.).
2. Optimisation du résumé
3. Mappage des métadonnées
Dépannage
Mémoire insuffisante
Symptômes :
OutOfMemoryErrorest enregistré dansfess_crawler.logL’indexation s’arrête en cours de route
Solutions :
Augmenter la taille du tas du robot d’indexation
Réduire le nombre de threads parallèles
Exclure les fichiers volumineux
Consultez Configuration de la mémoire pour plus de détails.
L’indexation est lente
Symptômes :
L’indexation prend trop de temps
Les timeouts se produisent fréquemment
Solutions :
Augmenter le nombre de threads (attention à la charge sur le serveur cible)
Ajuster les timeouts
Exclure les URLs inutiles
Impossible d’extraire un contenu spécifique
Symptômes :
Le texte de la page n’est pas extrait correctement
Les informations importantes ne sont pas incluses dans les résultats de recherche
Solutions :
Vérifier et ajuster le XPath
Vérifier les balises supprimées
Pour le contenu généré dynamiquement par JavaScript, envisagez une autre méthode (indexation API, etc.)
Des caractères corrompus apparaissent
Symptômes :
Des caractères corrompus apparaissent dans les résultats de recherche
Certaines langues ne s’affichent pas correctement
Solutions :
Vérifier les paramètres d’encodage
Configurer l’encodage des noms de fichiers
Vérifier les erreurs d’encodage dans les journaux
Bonnes pratiques
Valider dans un environnement de test
Avant d’appliquer en production, validez suffisamment dans un environnement de test.
Ajustement progressif
Ne modifiez pas les paramètres de manière importante en une seule fois, ajustez progressivement et vérifiez les effets.
Surveillance des journaux
Après avoir modifié les paramètres, surveillez les journaux pour vérifier qu’il n’y a pas d’erreurs ou de problèmes de performance.
Sauvegarde
Avant de modifier les fichiers de configuration, effectuez toujours une sauvegarde.
Documentation
Documentez les paramètres modifiés et leur raison.
Configuration du crawler S3/GCS
Crawler S3
Configuration pour crawler S3 et le stockage compatible S3 (comme MinIO). Ajoutez ce qui suit aux « Paramètres de configuration » dans les paramètres de crawl de fichiers.
| Paramètre | Description | Par défaut |
|---|---|---|
client.endpoint | URL du point de terminaison S3 | (Obligatoire) |
client.accessKey | Clé d’accès | (Obligatoire) |
client.secretKey | Clé secrète | (Obligatoire) |
client.region | Région AWS | us-east-1 |
client.connectTimeout | Délai de connexion (ms) | 10000 |
client.readTimeout | Délai de lecture (ms) | 10000 |
Exemple de configuration
Crawler GCS
Configuration pour crawler Google Cloud Storage. Ajoutez ce qui suit aux « Paramètres de configuration » dans les paramètres de crawl de fichiers.
| Paramètre | Description | Par défaut |
|---|---|---|
client.projectId | ID de projet Google Cloud | (Obligatoire) |
client.credentialsFile | Chemin du fichier JSON du compte de service | (Optionnel) |
client.endpoint | Point de terminaison personnalisé | (Optionnel) |
client.connectTimeout | Délai de connexion (ms) | 10000 |
client.writeTimeout | Délai d’écriture (ms) | 10000 |
client.readTimeout | Délai de lecture (ms) | 10000 |
Exemple de configuration
Note
Si credentialsFile est omis, la variable d’environnement GOOGLE_APPLICATION_CREDENTIALS est utilisée.
Informations de référence
Configuration de base du robot d’indexation - Configuration de base du robot d’indexation
Configuration des vignettes - Configuration des vignettes
Configuration de la mémoire - Configuration de la mémoire
Configuration des journaux - Configuration des journaux
Paramètres liés à la recherche - Configuration de recherche avancée