Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
serveurscrutari:json:fiche_fields [2017/11/02 12:42] vincent |
serveurscrutari:json:fiche_fields [2019/11/25 18:26] vincent [Champs des fiches] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Champs des fiches ====== | ====== Champs des fiches ====== | ||
- | Les champs des fiches constituent la masse la plus importante de données susceptibles d'être transmise par les différentes requêtes. La liste des champs à transmettre doit donc être indiquée par le paramètre //fichefields//. | + | Les champs des fiches constituent la masse la plus importante de données susceptibles d'être transmise par les différentes requêtes. La liste des champs à transmettre est indiquée soit par le paramètre //fichefields//, soit par la variante de champs à utiliser indiquée par le paramètre //fieldvariant//. Dans le cas d'absence des deux paramètres, c'est la variante par défaut qui est utilisée (voir la configuration des variantes de champs côté serveur avec le fichier [[serveurscrutari:config:fields|fields.xml]]. |
- | La valeur du paramètre //fichefields// est une liste de champs séparés par une virgule avec les valeurs suivantes : | + | |
+ | La valeur du paramètre //fichefields// ou de l'attribut //@fields// de l'élément !!<fiche>!! dans [[serveurscrutari:config:fields|fields.xml]] est une liste de champs séparés par une virgule avec les valeurs suivantes : | ||
* //-codefiche// : par défaut, le code de la fiche est toujours inséré, ce paramètre permet de l'éviter | * //-codefiche// : par défaut, le code de la fiche est toujours inséré, ce paramètre permet de l'éviter | ||
Ligne 15: | Ligne 16: | ||
* //href// : url de la fiche | * //href// : url de la fiche | ||
* //lang// : langue de la fiche | * //lang// : langue de la fiche | ||
- | * //annee// : année de la fiche | + | * //year// : année de la fiche |
* //date// : date de la fiche | * //date// : date de la fiche | ||
* //ficheicon// : icone spécifique de la fiche | * //ficheicon// : icone spécifique de la fiche | ||
Ligne 27: | Ligne 28: | ||
* //mattrs// : tableau associatif des attributs marqués suivant le même principe que //mtitre//, seuls les attributs qui ont servi à la recherche sont inclus | * //mattrs// : tableau associatif des attributs marqués suivant le même principe que //mtitre//, seuls les attributs qui ont servi à la recherche sont inclus | ||
* //mattrs_primary// : comme précédent, mais tous les attributs du premier groupe (ceux placés avanc les champs complémentaires) sont inclus le tableau associatif | * //mattrs_primary// : comme précédent, mais tous les attributs du premier groupe (ceux placés avanc les champs complémentaires) sont inclus le tableau associatif | ||
- | * //mattrs_all// : comme précédent, mais tous les attributs sont inclus le tableau associatif | + | * //mattrs_all// : comme précédent, mais tous les attributs du premier et second groupes sont inclus le tableau associatif, à l'exception de ceux de type « block » |
+ | * //attrs// : attributs techniques sous le forme d'un tableau associatif | ||
+ | * //attrs_primary// : attributs techniques et du premier groupe sous la forme d'un tableau associatif | ||
+ | * //attrs_all// : tous les attributs sans exception sous la forme d'un tableau associatif (peut conduire à un fichier particulièrement volumineux s'il y a des attributs de type « block ») | ||
* //score// : score de la fiche pour la recherche, c'est un tableau de trois réels entre 0 et 1 : le premier est le score pour l'occurrence, le deuxième pour la date et le troisième pour l'origine ; c'est la somme de ces scores qui détermine l'ordre des fiches | * //score// : score de la fiche pour la recherche, c'est un tableau de trois réels entre 0 et 1 : le premier est le score pour l'occurrence, le deuxième pour la date et le troisième pour l'origine ; c'est la somme de ces scores qui détermine l'ordre des fiches | ||
- | * //{nom d'attribut}// : tout nom d'attribut valide, la valeur de l'attribut sera une chaine ; si l'attribut possède plusieurs valeurs elles seront concaténées suivant un mode opératoire dépendant du type de l'attribut | ||
Ligne 61: | Ligne 64: | ||
===== Renommage des noms des champs dans l'objet résultant ===== | ===== Renommage des noms des champs dans l'objet résultant ===== | ||
- | Cette fonctionnalité peut être utile quand l'objet JSON est traité directement par d'autres outils (dans l'export au format GeoJSON notamment), il permet de changer le nom de la propriété dans l'objet résultant. Cette fonction est possible pour les champs suivants : | + | Cette fonctionnalité peut être utile quand l'objet JSON est traité directement par d'autres outils (dans l'export au format GeoJSON notamment). |
+ | |||
+ | Le moyen le plus efficace est de renommer un champ est d'utiliser les variantes de champs définies du côté serveur avec le fichier [[serveurscrutari:config:fields|fields.xml]] et les éléments !!<alias>!! (qui permettent notamment la concaténation de plusieurs champs en un seul). | ||
+ | |||
+ | Pour des raisons historiques et pratiques, il est possible de renommer certains champs directement avec les paramètres suivants : | ||
* //field-titre// : nom de la propriété du titre (//titre// par défaut) | * //field-titre// : nom de la propriété du titre (//titre// par défaut) | ||
Ligne 69: | Ligne 76: | ||
* //field-{nom d'attribut}// : pour toutes les propriétés basées sur un attribut (//{nom de l'attribut}// par défaut) | * //field-{nom d'attribut}// : pour toutes les propriétés basées sur un attribut (//{nom de l'attribut}// par défaut) | ||
- | Par exemple, l'application Umap (http://umap.openstreetmap.fr) peut traiter directement le résultat d'une recherche au format GeoJSON. Cependant, le nom d'un marqueur est déduit de la propriété //name//. Avec le paramètre //field-titre=name//, on s'assure que le titre apparait sous la propriété //name//. | + | |
Ligne 76: | Ligne 83: | ||
Note : même si un champ est indiqué dans //fichefields//, la propriété peut être absente dans l'objet JSON correspondant si la valeur est nulle. | Note : même si un champ est indiqué dans //fichefields//, la propriété peut être absente dans l'objet JSON correspondant si la valeur est nulle. | ||
+ | |||
+ | Version 3 | ||
+ | |||
+ | <code javascript> | ||
+ | { | ||
+ | codefiche: … , // code de la fiche, toujours présent sauf si -codefiche (entier > 0) | ||
+ | codecorpus: … , // champ 'codecorpus' (entier > 0) | ||
+ | codebase: … , // champ 'codebase' (entier > 0) | ||
+ | authority: … , //autorité productrice de la base tel que dans l'URI (chaine) | ||
+ | basename: … , //nom technique de la base tel que dans l'URI (chaine) | ||
+ | corpusname: … , //nom technique du corpus tel que dans l'URI (chaine) | ||
+ | ficheid: …, // champ 'fiche-id' (chaine) | ||
+ | titre: … , // champ 'titre' (chaine) | ||
+ | soustitre: … , // champ 'soustitre' (chaine) | ||
+ | href: … , // champ 'href' (chaine) | ||
+ | lang: … , // champ 'lang' (chaine, code ISO de la langue) | ||
+ | year: … , // champ 'year' (entier) | ||
+ | date: … , // champ 'date' (chaine) | ||
+ | ficheicon: … , // champ 'ficheicon' (chaine) | ||
+ | icon: … , // champ 'icon' (chaine) | ||
+ | lat: … , // latitude si champ 'geo' (chaine) | ||
+ | lon: … , // longitude si champ 'geo' (chaine) | ||
+ | complementArray: [ // tableau des champs complémentaires si champ 'complements' | ||
+ | { | ||
+ | number: … , // numéro du champ complémentaire (entier > 0) | ||
+ | value: … // texte du champ complémentaire (chaine) | ||
+ | } | ||
+ | ], | ||
+ | attrMap: { // si champ 'attrs', tableau associatif des attributs | ||
+ | (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut | ||
+ | |||
+ | ] | ||
+ | }, | ||
+ | mtitre: [ // tableau du titre marqué | ||
+ | // voir ci-dessus chaines marquées | ||
+ | ], | ||
+ | msoustitre: [ // tableau du soustitre marqué | ||
+ | // voir ci-dessus chaines marquées | ||
+ | ], | ||
+ | mcomplementArray: [ // si champ 'mcomplements', tableau des compléments marqués | ||
+ | { | ||
+ | number: … , // numéro du champ complémentaire (entier > 0) | ||
+ | mvalue: [ // tableau du complément marqué | ||
+ | // voir ci-dessus chaines marquées | ||
+ | ] | ||
+ | } | ||
+ | ], | ||
+ | mattrMap: { // si champ 'mattrs', tableau associatif des attributs marqués | ||
+ | (clé): [ // la clé est celle de l'attribut, la valeur est le tableau des valeurs de l'attribut | ||
+ | // voir de ci-dessus chaines marquées | ||
+ | ] | ||
+ | }, | ||
+ | score: [… ] // score de la fiche sous la forme d'un tableau de trois réels entre 0 et 1 | ||
+ | } | ||
+ | |||
+ | </code> | ||
+ | |||
+ | Version 2 et inférieures | ||
<code javascript> | <code javascript> |