Apercu
Le connecteur JSON fournit la fonctionnalite permettant de recuperer des donnees a partir de fichiers JSONL locaux (format JSON Lines) et de les enregistrer dans l’index Fess.
Cette fonctionnalite necessite le plugin fess-ds-json.
Prerequis
L’installation du plugin est requise
L’acces aux fichiers JSON est necessaire
La structure du JSON doit etre comprise
Installation du plugin
Methode 1 : Placement direct du fichier JAR
Methode 2 : Installation depuis l’interface d’administration
Ouvrir « Systeme » -> « Plugins »
Telecharger le fichier JAR
Redemarrer Fess
Configuration
Configurez depuis l’interface d’administration via « Crawler » -> « Data Store » -> « Nouveau ».
Configuration de base
| Element | Exemple de configuration |
|---|---|
| Nom | Products JSON |
| Nom du gestionnaire | JsonDataStore |
| Actif | Oui |
Configuration des parametres
Fichier local :
Fichiers multiples :
Specification de repertoire :
Liste des parametres
| Parametre | Requis | Description |
|---|---|---|
files | Non | Chemin des fichiers JSON a traiter (plusieurs valeurs possibles, separees par des virgules). Seuls les fichiers avec l’extension .json ou .jsonl sont traites. |
directories | Non | Chemin des repertoires contenant les fichiers JSON (plusieurs valeurs possibles, separees par des virgules) |
fileEncoding | Non | Encodage des caracteres (par defaut : UTF-8) |
Avertissement
Il est necessaire de specifier files ou directories. Si aucun des deux n’est specifie (vide), une DataStoreException sera levee. Si les deux sont specifies, files a la priorite et directories est ignore.
Note
Le nom du parametre est en camelCase : fileEncoding (et non en snake_case : file_encoding).
Comportement lors de la specification d’un repertoire
Lorsque directories est specifie, les fichiers directement dans chaque repertoire sont traites selon les regles suivantes.
Les sous-repertoires ne sont pas parcourus (pas d’exploration recursive).
Seuls les fichiers avec l’extension
.jsonou.jsonlsont concernes (sans distinction de casse).Les fichiers sont traites dans l’ordre croissant de leur date de modification (date de derniere modification).
Note
Ce connecteur traite uniquement les fichiers JSON sur le systeme de fichiers local. L’acces HTTP et les fonctions d’authentification API ne sont pas pris en charge.
Configuration des scripts
La valeur de chaque champ est construite en referençant les valeurs des champs de l’objet JSON. Les champs de niveau superieur de l’objet JSON sont directement accessibles dans les scripts sous forme de variables sans prefixe (sans prefixe tel que data.).
Objet JSON simple :
Objet JSON imbrique (les objets imbriques sont references comme des maps) :
Traitement des elements de tableau :
Champs disponibles
<nom_champ>- Reference directe par nom d’un champ de niveau superieur de l’objet JSON<parent>.<enfant>- Champ d’un objet imbrique<tableau>[<indice>]- Element de tableau<tableau>.<methode>- Methodes de tableau (join,collect,size, etc.)
Note
Si un nom de champ contient des caracteres invalides comme identificateur Groovy (espaces, tirets, etc.), ce champ ne peut pas etre reference directement comme variable.
Details du format JSON
Format de fichier JSON
Le connecteur JSON lit les fichiers au format JSONL (JSON Lines). C’est un format ou un objet JSON est ecrit par ligne. Le fichier est lu ligne par ligne, et chaque ligne est analysee comme un objet JSON independant.
Note
Les fichiers avec l’extension .json sont egalement traites, mais leur contenu doit etre au format JSONL (un objet par ligne). Les fichiers JSON au format tableau ( [{...}, {...}] ) ou mis en forme sur plusieurs lignes (pretty-print) ne peuvent pas etre lus directement. Veuillez les convertir au format JSONL.
Fichier au format JSONL :
Exemples d’utilisation
Catalogue de produits
Parametres :
Scripts :
Integration de plusieurs fichiers JSON
Parametres :
Scripts :
Depannage
Fichier introuvable
Symptome : ... is not found. ou Source file ... does not exist. apparait dans les journaux
Verifications :
Verifier que le chemin du fichier est correct
Verifier que le fichier existe
Verifier que l’extension du fichier est
.jsonou.jsonlVerifier les permissions de lecture du fichier
Erreur d’analyse JSON
Symptome : Crawling Access Exception et JsonParseException apparaissent dans les journaux
Si une ligne invalide est rencontree, seule cette ligne est ignoree et enregistree comme URL en echec ; le crawl continue a partir de la ligne suivante.
Verifications :
Verifier que le fichier JSON est au bon format (JSONL : un objet par ligne) :
Verifier l’encodage des caracteres
Verifier qu’un seul objet ne s’etend pas sur plusieurs lignes
Verifier l’absence de commentaires (non autorises dans la norme JSON)
Aucune donnee recuperee
Symptome : Le crawl reussit mais le nombre de resultats est 0
Verifications :
Verifier la structure JSON
Verifier la configuration des scripts (les references de champs ne doivent pas avoir de prefixe
data.)Verifier les noms de champs (y compris la casse)
Verifier les messages d’erreur dans les journaux
Fichiers JSON volumineux
Symptome : Memoire insuffisante ou delai d’attente depasse
Les fichiers etant lus ligne par ligne, la taille totale du fichier n’affecte pas directement la consommation memoire. Des problemes peuvent toutefois survenir si une seule ligne (un objet) est extremement grande ou si la charge d’indexation est elevee.
Solutions :
Diviser le fichier JSON en plusieurs fichiers
Augmenter la taille du tas (heap) de Fess
Utilisation avancee des scripts
Traitement conditionnel
Chaque champ est evalue comme une expression independante. Pour les valeurs conditionnelles, utilisez l’operateur ternaire :
Jointure de tableaux
Configuration des valeurs par defaut
Formatage des dates
Traitement des nombres
Informations de reference
Apercu des connecteurs DataStore - Apercu des connecteurs Data Store
Connecteur CSV - Connecteur CSV
Connecteur de base de données - Connecteur de base de donnees
Présentation - Guide de configuration Data Store