Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
serveurscrutari:json:fiche_fields [2017/11/02 12:42] – vincent | serveurscrutari:json:fiche_fields [2022/04/05 00:25] (Version actuelle) – vincent |
---|
====== 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 |
* //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 |
| * //dateiso// : date de la fiche au format ISO (par exemple, une fiche dont seule l'année est connue sera datée au premier janvier de cette année) |
* //ficheicon// : icone spécifique de la fiche | * //ficheicon// : icone spécifique de la fiche |
* //icon// : icone qui est l'icone spécifique de la fiche s'il existe, sinon l'icone de la base de la fiche | * //icon// : icone qui est l'icone spécifique de la fiche s'il existe, sinon l'icone de la base de la fiche |
* //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 | * //codemotclearray// : indique qu'il faut également transmettre les mots-clés indexant la fiche, (c'est le comportement par défaut dans le cas d'une recherche) |
| * //-codemotclearray// : indique qu'il ne faut pas transmettre les mots-clés indexant la fiche (permet d'annuler le comportement par défaut dans le cas d'une recherche) |
| * //codemotclearray_all// : indique qu'il faut transmettre tous les mots-clés d'une fiche et pas seulement ceux qui ont contribué à la recherche |
| * //bythesaurusmap// : regroupe les mots-clés non sous la forme d'un tableau mais d'une table où les mots-clés sont regroupés par thésaurus |
| * //bythesaurusmap_all//: regroupe les mots-clés comme l'argument précédent, en incluant tous les mots-clés, y compris ceux qui n'ont pas participé à la recherche |
| |
| |
===== 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) |
* //field-soustitre// : nom de la propriété du sous-titre (//soustitre// par défaut) | * //field-soustitre// : nom de la propriété du sous-titre (//soustitre// par défaut) |
* //field-href// : nom de la propriété du l'URL (//href// par défaut) | * //field-href// : nom de la propriété du l'URL (//href// par défaut) |
* //field-annee// : nom de la propriété de l'année (//annee// par défaut) | * //field-year// : nom de la propriété de l'année (//year// 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) | * //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//. | |
| |
| |
| |
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 |
| ] |
| }, |
| bythesaurusMap: { // si champ 'bythesaurusmap', tableau associatif des mots-clés regroupés par thésaurus |
| code_(code): [ // code du thésaurus |
| // liste des codes des mots-clés |
| ] |
| }, |
| 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> |