Aperçu
Le connecteur CSV fournit la fonctionnalité permettant de récupérer des données à partir de fichiers CSV et de les enregistrer dans l’index Fess.
Cette fonctionnalité nécessite le plugin fess-ds-csv.
Prérequis
L’installation du plugin est requise
L’accès au fichier CSV est nécessaire
L’encodage des caractères du fichier CSV doit être connu
Installation du plugin
Méthode 1 : Placement direct du fichier JAR
Méthode 2 : Installation depuis l’interface d’administration
Ouvrir « Système » → « Plugins »
Téléverser le fichier JAR
Redémarrer Fess
Configuration
Configurez depuis l’interface d’administration via « Crawler » → « Data Store » → « Nouveau ».
Configuration de base
| Élément | Exemple |
|---|---|
| Nom | Products CSV |
| Nom du gestionnaire | CsvDataStore |
| Activé | Oui |
Configuration des paramètres
Fichier local :
Fichiers multiples :
Note
Le traitement des guillemets (quotes) et le traitement des échappements sont désactivés par défaut. Pour traiter des CSV conformes à la RFC 4180 (champs entre guillemets pouvant contenir des délimiteurs ou des sauts de ligne), spécifiez explicitement quote_disabled=false pour activer le traitement des guillemets. Reportez-vous à la section « Activation du traitement des guillemets et des échappements » ci-dessous pour plus de détails.
Liste des paramètres
| Paramètre | Requis | Description |
|---|---|---|
files | Non | Chemin du fichier CSV (chemin local, plusieurs fichiers séparés par des virgules). files ou directories doit être spécifié. Si les deux sont indiqués, files est prioritaire. Les fichiers spécifiés doivent avoir l’extension .csv ou .tsv ; les fichiers ayant une autre extension sont ignorés. |
directories | Non | Chemin du répertoire contenant les fichiers CSV (plusieurs répertoires séparés par des virgules). Seuls les fichiers .csv et .tsv présents dans le répertoire sont traités. Utilisé si files n’est pas spécifié. |
file_encoding | Non | Encodage des caractères (par défaut : UTF-8) |
has_header_line | Non | Présence d’une ligne d’en-tête (par défaut : false) |
separator_character | Non | Caractère de séparation (par défaut : virgule ,). Les séquences d’échappement telles que \t peuvent être spécifiées (séparation par tabulation). |
quote_character | Non | Caractère de guillemet (par défaut : guillemet double "). Notez que le traitement des guillemets est désactivé par défaut (voir quote_disabled). |
escape_character | Non | Caractère d’échappement (par défaut : barre oblique inverse \). Notez que le traitement des échappements est désactivé par défaut (voir escape_disabled). |
Note
Si files et directories sont tous les deux vides, une erreur (DataStoreException) est générée. L’un ou l’autre doit obligatoirement être spécifié.
Paramètres avancés
Les paramètres suivants permettent de contrôler finement le comportement d’analyse du CSV :
| Paramètre | Description |
|---|---|
quote_disabled | Désactive le traitement des guillemets (par défaut : true). Spécifiez false pour traiter des champs entre guillemets conformes à la RFC 4180. |
escape_disabled | Désactive le traitement des échappements (par défaut : true). Spécifiez false pour activer l’échappement via escape_character. |
skip_lines | Nombre de lignes à ignorer en début de fichier (par défaut : 0) |
ignore_line_patterns | Expression régulière pour ignorer certaines lignes (ex. : ^#.* pour ignorer les lignes de commentaire) |
ignore_empty_lines | Ignorer les lignes vides (par défaut : false) |
ignore_trailing_whitespaces | Ignorer les espaces en fin de champ (par défaut : false) |
ignore_leading_whitespaces | Ignorer les espaces en début de champ (par défaut : false) |
null_string | Chaîne de caractères traitée comme valeur nulle |
break_string | Chaîne de remplacement des sauts de ligne dans les valeurs de champ |
readInterval | Temps d’attente après le traitement de chaque enregistrement (en millisecondes) (par défaut : 0) |
Configuration du script
Les valeurs de chaque champ sont construites en référençant les valeurs des colonnes du CSV. Les colonnes CSV sont accessibles directement dans le script en tant que variables sans préfixe (sans préfixe data. ni autre).
Avec en-tête (référence par nom de colonne) :
Sans en-tête (référence par index de colonne) :
Champs disponibles
<nom_colonne>— Référence directe par le nom de la colonne de la ligne d’en-tête (uniquement sihas_header_line=trueet si le nom de colonne n’est pas vide)cell<N>— Référence par index de colonne (cell1,cell2… en commençant à 1 ; disponible que l’en-tête soit présent ou non)csvfile— Chemin complet du fichier CSV en cours de traitementcsvfilename— Nom du fichier CSV en cours de traitement
Note
Si un nom de colonne contient des caractères non valides comme identifiant Groovy (espaces, tirets, etc.), la référence par nom de colonne n’est pas possible. Dans ce cas, utilisez cell<N>.
Détails du format CSV
CSV standard (conforme RFC 4180)
Note
Pour inclure un délimiteur dans un champ en l’entourant de guillemets (comme "Book, Programming" ci-dessus), il est nécessaire de spécifier quote_disabled=false afin d’activer le traitement des guillemets. Lorsque le traitement des guillemets est désactivé (comportement par défaut), les guillemets sont traités comme des caractères ordinaires et les champs sont découpés au niveau du délimiteur.
Activation du traitement des guillemets et des échappements
Le traitement des guillemets et des échappements est désactivé par défaut. Activez-les explicitement comme suit.
Activer le traitement des guillemets :
Activer le traitement des échappements :
Modification du séparateur
Séparation par tabulation (TSV) :
Séparation par point-virgule :
Guillemet personnalisé
Guillemet simple (l’activation du traitement des guillemets est requise) :
Encodage
Fichier en Shift_JIS :
Fichier en EUC-JP :
Exemples d’utilisation
Catalogue de produits CSV
Fichier CSV (products.csv) :
Paramètres :
Script :
Filtrage des informations de stock :
Annuaire des employés CSV
Fichier CSV (employees.csv) :
Paramètres :
Script :
CSV sans en-tête
Fichier CSV (data.csv) :
Paramètres :
Script :
Intégration de plusieurs fichiers CSV
Paramètres :
Script :
Fichier séparé par tabulation (TSV)
Fichier TSV (data.tsv) :
Paramètres :
Script :
Dépannage
Fichier introuvable
Symptôme : Le crawl s’exécute mais le fichier n’est pas traité ; le log affiche is not found
Points à vérifier :
Vérifier si le chemin du fichier est correct (chemin absolu recommandé)
Vérifier si le fichier existe
Vérifier si l’extension du fichier est
.csvou.tsv(les autres extensions sont ignorées)Vérifier si les droits de lecture sont accordés
Vérifier si l’utilisateur exécutant Fess peut y accéder
Caractères illisibles
Symptôme : Les caractères ne s’affichent pas correctement
Solution :
Spécifier le bon encodage :
Vérifier l’encodage du fichier :
Les colonnes ne sont pas reconnues correctement
Symptôme : Les délimiteurs de colonnes ne sont pas reconnus correctement, ou les champs entre guillemets sont découpés
Points à vérifier :
Vérifier si le caractère de séparation est correct :
Pour traiter des champs entre guillemets (champs contenant le délimiteur), activer le traitement des guillemets :
Vérifier le format du fichier CSV (conformité RFC 4180)
Gestion de la ligne d’en-tête
Symptôme : La première ligne est reconnue comme données
Solution :
Si une ligne d’en-tête existe :
Si aucune ligne d’en-tête n’existe :
Impossible de récupérer les données
Symptôme : Le crawl réussit mais le nombre d’éléments est 0
Points à vérifier :
Vérifier si le fichier CSV n’est pas vide
Vérifier si la configuration du script est correcte (les noms de colonnes et
cell<N>sont référencés sans préfixedata.)Vérifier si les noms de colonnes sont corrects (si has_header_line=true)
Vérifier les messages d’erreur dans les logs
Fichiers CSV volumineux
Symptôme : Mémoire insuffisante ou timeout
Solution :
Diviser le fichier CSV en plusieurs parties
Utiliser uniquement les colonnes nécessaires dans le script
Augmenter la taille du tas de Fess
Filtrer les lignes inutiles
Champs contenant des sauts de ligne
Le format RFC 4180 permet de gérer les champs contenant des sauts de ligne en les entourant de guillemets. Le traitement des guillemets étant désactivé par défaut, il est nécessaire de spécifier quote_disabled=false :
Paramètres :
CsvListDataStore
Le plugin fess-ds-csv inclut, en plus de CsvDataStore, le gestionnaire CsvListDataStore.
CsvListDataStore étend CsvDataStore et fournit les fonctionnalités supplémentaires suivantes :
Traitement multi-thread (contrôlé par le paramètre
numOfThreads)Suppression automatique des fichiers CSV traités
Filtrage des fichiers par horodatage (les fichiers en cours d’écriture sont ignorés)
Tous les paramètres et configurations de script de CsvDataStore sont utilisables tels quels.
Configuration de base
| Élément | Exemple |
|---|---|
| Nom du gestionnaire | CsvListDataStore |
Paramètres supplémentaires
| Paramètre | Requis | Description |
|---|---|---|
timestamp_margin | Non | Délai écoulé depuis la dernière modification du fichier (en millisecondes). Les fichiers dont ce délai n’est pas écoulé sont considérés comme en cours d’écriture et sont ignorés (par défaut : 10000) |
numOfThreads | Non | Nombre de threads de traitement (par défaut : 1) |
Note
CsvListDataStore supprime automatiquement les fichiers CSV après leur traitement. En cas d’erreur pendant le traitement, le fichier est renommé avec l’extension .txt (s’il est impossible de le renommer, il est supprimé).
Exemples d’utilisation avancée des scripts
Traitement des données
Indexation conditionnelle
Concaténation de plusieurs colonnes
Format de date
Informations de référence
Apercu des connecteurs DataStore - Aperçu des connecteurs Data Store
Connecteur JSON - Connecteur JSON
Connecteur de base de données - Connecteur de base de données
Présentation - Guide de configuration Data Store