Différences entre versions de « Recherche en JSON »

De WIKI-BOKEH
Aller à : navigation, rechercher
Ligne 110 : Ligne 110 :
  
 
=== Notice === <!--T:29-->
 
=== Notice === <!--T:29-->
 +
 +
<pre>[http://adresse.de.mon.bokeh]/recherche/viewnotice/format/json/id/xx/clef/xxxx-xxxx</pre>
 +
 
Le format s'inspire de dublin-core en ajoutant des champs.
 
Le format s'inspire de dublin-core en ajoutant des champs.
  

Version du 15 novembre 2018 à 15:15

<translate> Il est possible d'interroger le moteur de recherche de Bokeh et d'obtenir une réponse JSON avec pagination.

Requête[ ]

Minimale[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json

Renvoie en JSON un résultat correspondant à tout le catalogue.
À partir de cette requête tous les autres critères peuvent être ajoutés et combinés.

Critères supplémentaires[ ]

Cette liste non exhaustive est tirée du model Class_CriteresRecherche.

expressionRecherche[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/expressionRecherche/[termes de la recherche]

Filtre les résultats par les termes saisis sur les axes titres, auteurs, éditeurs, collections, matières et dewey.
Tout d'abord en requérant la présence de tous les termes (mode ET), puis si aucun résultat n'est trouvé en requérant la présence d'au moins un terme (mode OU).
Les résultats sont triés par pertinence calculée suivant la formule:

(pertinence des termes dans le titre * 1.5) + (pertinence des termes dans les auteurs)

no_extension[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/expressionRecherche/[termes de la recherche]/no_extension/1

Permet de désactiver le comportement d'élargissement automatique de la recherche en mode OU.
Ce critère n'a donc de sens que dans une requête ayant aussi le critère expressionRecherche contenant plus d'un terme.

type_doc[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/type_doc/[identifiant]

Filter les résultats par le type de document spécifié.
La liste par défaut des identifiants est disponible dans le model Class_TypeDoc

nouveaute[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/nouveaute/[nombre de mois]

Filtre les résultats sur les notices dont la date de fin de nouveauté est supérieur à aujourd'hui moins [nombre de mois].

annee_debut, annee_fin[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/annee_debut/[debut]/annee_fin/[fin]

Filtre les résultats par l'année d'édition comprise entre [debut] et [fin].
Si une des années est passée vide, le filtre se transforme soit en à partir si l'annee_debut est donnée, soit en jusqu'à si l'annee_fin est donné.

tri[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/tri/[tri]

Permet de gérer l'ordre des résultats par défaut par pertinence, sinon par la valeur spécifiée dans [tri] parmi:

  • * : Pertinence (par défaut)
  • alpha_titre : Titre
  • annee desc : Année de publication
  • type_doc,alpha_titre : Type de document
  • date_creation desc : Date de nouveauté
  • nb_visu desc : Consultation

page[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/page/[numéro de page]

Permet d'accéder à une page de résultat, par défaut la première page est renvoyée.

page_size[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/page_size/[nombre d'éléments par page]

Permet de spécifier le nombre d'éléments renvoyés par page. Si non-spécifié, prend la taille de page paramétrée dans Bokeh. Taille maximale limitée à 50.

digital_lib[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/digital_lib/[1]

Permet de filtrer le résultat sur les notices ayant un type document de la bibliothèque numérique.

from[ ]

[http://adresse.de.mon.bokeh]/recherche/simple/format/json/from/[aaaa-mm-jj]

Permet de filtrer le résultat sur les notices ayant une date de mise à jour supérieur au paramètre *from*.

Réponse[ ]

La réponse est composée d'un entête et d'une liste de notices.

{
  "url": "http://bokeh.pas.net/recherche/simple/format/json",
  "total": 3,
  "page_size": 10,
  "page": 1,
  "records": [...]
}

Entête[ ]

  • url : rappel de l'url ayant servi à obtenir le résultat
  • total : nombre total de résultats
  • page_size : maximum de notices par page
  • page : page courante de résultat
  • records : liste des notices de la page courante

Notice[ ]

[http://adresse.de.mon.bokeh]/recherche/viewnotice/format/json/id/xx/clef/xxxx-xxxx

Le format s'inspire de dublin-core en ajoutant des champs.

{
  "identifier": "HARRYPOTTERALECOLEDESSORCIERS--ROWLINGJ-1-GALLIMARDJEUNESSE-2011-1",
  "permalink": "http://[adresse.de.mon.bokeh]/recherche/viewnotice/clef/HARRYPOTTERALECOLEDESSORCIERS--ROWLINGJ-1-GALLIMARDJEUNESSE-2011-1/id/234",
  "type": {"code": 1, "label": "livre"},
  "titles": ["Harry Potter", "Harry Potter à l'école des sorciers"],
  "serial": "Harry Potter",
  "thumbnail" : "http://www.gallimard.fr/var/storage/images/product/4ea/product_9782070612369_195x320.jpg",
  "creators": ["Joanne Kathleen Rowling"],
  "publishers": ["Gallimard-Jeunesse"],
  "date": 2011,
  "volume": 1,
  "language": "fre",
  "description": "Le jour de ses onze ans, Harry Potter, un orphelin élevé par un oncle ...",
  "collections": ["Folio junior"],
  "classifications": [...],
  "items": [...],
  "relations": [...]
}
  • identifier : clef alpha interne Bokeh
  • permalink : url d'accès à la notice
  • type : type de document, voir le model Class_TypeDoc
  • titles : liste des titres, titre principale en premier
  • creators : liste des auteurs, auteur principal en premier
  • date : année d'édition

Classification[ ]

Les classifications rattachées à une notice sont regroupées par type de classification.

{
  "type": "genre",
  "label": "Genre",
  "entries": [ {"code": "G10", "label": "Roman jeunesse"}, 
               {"code": "G67", "label": "Aventure"} ],
}

</translate>

Items[ ]

Les exemplaires rattachés à une notice sont regroupés dans le champs *items*

{
 "id" : "identifiant unique",
 "id_notice" : "identifiant unique de la notice parente",
 "id_bib" : "identifiant unique de la biliothèque parente",
 "code_barres" : "code barre",
 "cote" : "cote",
 "genre" : "genre",
 "documentaire" : "documentaire",
 "section" : "section",
 "activite" : "activité",
 "emplacement" : "emplacement",
 "annexe" : "annexe",
 "date_nouveaute" : "date_nouveaute",
 "zone995" : [],
 "id_origine" : "identifiant unique d'origine externe"
 "id_int_bib" : "identifiant unique de l'import"
 "is_available" : "flag de disponibilité"
 "url" : "url de l'exemplaire"
}

zone995[ ]

La zone 995 se trouve dans le tableau de l'exemplaire. Elle est composé de plusieurs tableaux.

{
"code" : "a",
"valeur" : "a"
}
zone995 exemplaire PNB Dilicom[ ]
{"code": "a", "valeur": "libelle de la biliotheque"},
{"code": "c", "valeur": "date de la commande"},
{"code": "f", "valeur": "identifiant unique de l'exemplaire"},
{"code": "n", "valeur": "identifiant unique de la transaction"},
{"code": "v", "valeur": "activité de l'exemplaire"}

relations[ ]

Les relations de la notice avec d'autres entités sons regroupées dans la collection "relations".

Elles sont regroupées par type de relation:

{"id": "identifiant unique",
  "label": "Libellé du type de relation",
  "from_source": "Libellé de la relation du point de vue de l'entité source",
  "from_target": "Libellé de la relation du point de vue de l'entité destination",
  "entries": [...]
}

Imaginons un type de relation "Imprimé / Numérique", les libellés de relations pourraient être "A pour version numérique" et "A pour version imprimée".

Chaque relation dans la collection "entries" se compose ainsi:

{"id": "identifiant unique",
  "type_id": "identifiant unique du type",
  "source": "URI de la source",
  "target": "URI de la destination",
  "source_type": "type d'entité source détecté par Bokeh",
  "target_type":"type d'entité destination détecté par Bokeh",
  "source_key": "identifiant de l'entité source si type connu par Bokeh",
  "target_key":"identifiant de l'entité destination si type connu par Bokeh"}

Les champs ..._type peuvent avoir une valeur parmi

  • afi:notice : l'URI est un permalien de notice Bokeh
  • afi:album : l'URI est un permalien d'album de la bibliothèque numérique Bokeh
  • afi:external : l'URI n'est pas reconnue