Recherche Look4 (REST)
- Introduction
- Comment s’utilise Look4 ?
- Liste des ressources de Look4
- Look4 - l’API de découverte
- Look4 - l’API de recherche
- Les principaux concepts de Look4
Table des matières
Titre
Introduction
Look4 est un service de recherche multisources proposé par l’IGN qui fournit une interface unique à l’utilisateur pour de multiples sources de données. Look4 sert notamment les besoins du site Géoportail.
Look4 permet, en un seul outil, de faire des recherches sur de nombreuses sources de données préconfigurées par l’IGN, telles que des adresses, des parcelles, des lieux-dits, des contenus du Géoportail, du géocatalogue ou de data.gouv.fr, ainsi que des index spécialisés tels que les points de repère routiers. Basé sur les dernières technologies de recherche, Look4 permet donc une recherche puissante et multidimensionnelle avec une interface simple.
Les sources de données proposées par Look4 peuvent être de deux natures :
- des sources indexées directement par Look4
- des web services de recherche tiers existants
Ces sources s’enrichissent progressivement : il est possible de solliciter l’IGN (en écrivant à l’adresse contact.geoservices@ign.fr) pour en rajouter de nouvelles.
Titre
Comment s’utilise Look4 ?
Look4 propose à l’utilisateur une API REST en JSON qui fournit des méthodes pour :
- connaître les données mises à disposition de l’utilisateur (API de découverte) ;
- effectuer des recherches dans les données selon les critères de l’utilisateur (API de recherche).
L’accès à Look4 se fait par l’URL suivante :
https://wxs.ign.fr/CLEF/look4/user/ |
La documentation complète de l’API est disponible à la page : https://ignf.github.io/look4/latest/jsdoc
La clé d’accès aux index de Look4, comme pour l’accès à l’ensemble des ressources du Géoportail, peut être obtenue sur l'onglet services-web avec les clés "essentiels" ou "calcul".
Titre
Liste des ressources de Look4
Les ressources utilisées par le service Look4 sont les suivantes :
Nom de la ressource | Description | Licence de la donnée sous-jacente |
---|---|---|
locating | un index regroupant les résultats du moteur de géocodage (adresses, lieux-dits habités, lieux-dits non habités) et les points de repère routiers. | Licence IGN : adresses, lieux-dits. Licence ouverte (LO/OL) : points routiers |
wwwLayers | les couches du site Géoportail | Licence ouverte (LO/OL) |
geocatLayers | des couches de visualisation issues de serveurs référencés par le Géocatalogue | Licence ouverte (LO/OL) |
content | le contenu éditorial du site Géoportail | Licence ouverte (LO/OL) |
voies_nommees | un index des rues de France par région, commune, département, utilisable par exemple dans des formulaires en ligne | Licence IGN |
-
Conditions d’utilisation des résultats de Look4
Lorsque des géoservices tels que Look4 permettent l’accès à des données sous licence IGN, les CGU des géoservices précisent l’on peut procéder “à toutes les opérations d’utilisation comme référentiel géographique, de vectorisation et de croisement de données IGN associées aux ressources en ligne du Géoportail avec d’autres données appartenant au licencié ou provenant de tiers.”
Toutefois l’utilisation du service est ainsi encadrée : “L’utilisateur est seul titulaire des droits de propriété intellectuelle des données résultant de ces opérations si elles ne permettent pas la reconstitution d’une partie substantielle des données IGN. Dans le cas contraire, l’utilisateur est titulaire de droits de propriété intellectuelle au titre d’une œuvre composite sur les données résultant de ces opérations, sous réserve des droits de propriété de l’IGN sur ses propres données. Il est alors autorisé à les diffuser, en franchise de droits et d’autorisation, quel que soit le bénéficiaire du transfert, sous réserve qu’il informe ce bénéficiaire :
- des droits de propriété intellectuelle de l’IGN sur ses propres données,
- de l’obligation de détenir ou d’acquérir auprès de l’IGN les droits nécessaires à la reconstitution d’une partie substantielle des données IGN.”
Les conditions générales d’utilisation (CGU) complètes sont disponible ici.
Titre
Look4 - l’API de découverte
Look4 permet à l’utilisateur de faire une série d’opérations permettant de découvrir les contenus proposés. Il propose en particulier les possibilités suivantes :
-
récupérer la liste des index existants : https://wxs.ign.fr/look4/user/discover/
-
obtenir le détail d’un index :
http://wxs.ign.fr/look4/user/discover/<id>
(“id” étant l’identifiant d’un index)
Exemple : https://wxs.ign.fr/look4/user/discover/voies_nommees |
Retourne la description et les types de données de l’index :
id "voies_nommees"
description "Les voies nommées de la BDTOPO"
types
0 "route"
- obtenir la description des types de données contenus dans un index :
http://wxs.ign.fr/look4/user/discover/<id>/type
(“id” étant l’identifiant d’un index)
Exemple : https://wxs.ign.fr/look4/user/discover/voies_nommees/type |
- obtenir le détail d’un type de données :
https://wxs.ign.fr/look4/user/discover/type/<id>
(“id” étant l’identifiant d’un type de données)
Exemple : https://wxs.ign.fr/look4/user/discover/type/route |
Pour toutes les requêtes possibles, voir https://ignf.github.io/look4/latest/jsdoc/#api-Decouverte
Important : la liste renvoie l’ensemble des index existants. Un index n’est effectivement interrogeable qu’une fois rajouté à sa propre clé d’accès via le site de la boutique pro.
NB : l’API de découverte de Look4 ne nécessite pas de clé d’accès.
Titre
Look4 - l’API de recherche
Look4 permet aux utilisateurs de lancer des recherches dans les différents index disponibles, avec plusieurs méthodes et options.
Lors d’une requête au service, l’utilisateur doit préciser les différents paramètres de sa recherche pour obtenir les réponses recherchées, tels que :
-
Le ou les index à utiliser (
indices
). L’utilisateur précise le (ou les) index dans lesquels il veut effectuer la recherche. -
La méthode de recherche (
method
). Look4 propose 2 types de recherche :- L’auto-complétion (
prefix
) : cette méthode propose des résultats à partir d’une recherche incomplète (par exemple au fur et à mesure de la saisie utilisateur dans un champ de recherche sur une page web). Dans le cas d’une recherche d’auto-complétion, le matching se fait sur le début des mots. Cette méthode n’accepte pas de faute de frappe ou d’orthographe ; - la recherche standard (
"fuzzy"
) : l’utilisateur saisit la totalité de sa recherche. Look4 cherche alors le ou les termes saisis indépendamment ou ensemble, avec une tolérance aux fautes d’orthographe.
- L’auto-complétion (
-
Le nombre de résultats (
nb
), optionnel, permet de préciser le nombre maximum de résultats retournés, avec un maximum de 200. En l’absence de ce paramètre, le nombre de résultats est de 20.
La requête comporte en outre plusieurs paramètres :
-
types
(facultatif) : ce paramètre permet de limiter les réponses retournés à certain types de documents (voir Type). Ex : adresses seulement, noms de couches seulement, etc… -
match
(obligatoire): ce paramètre permet de sélectionner lesquels des champs sont utilisés pour la recherche. Ce paramètre est le seul obligatoire. Il peut prendre une ou plusieurs des valeurs suivantes :fulltext
: L’utilisateur peut demander une recherche sur l’ensemble des champs autorisés à la recherche fulltext. La liste de ces champs est définie lors du paramétrage (voir le paragraphe Type). Ce mode de matching est particulièrement utile quand l’utilisateur ne sait pas dans quel champ chercher.fields
: l’utilisateur peut préciser dans quels champs faire le matching. Ces champs doivent avoir été définis dans le paramétrage comme “queryable” (voir Type).geometry
: l’utilisateur peut préciser un périmètre de recherche sous forme d’un WKT ou d’un GeoJSON
-
filter
(facultatif) : ce paramètre permet de limiter les documents en appliquant des filtres sur l’ensemble des champs, qu’ils soient “queryable” ou non. Le critère peut être un “contient” ou une expression régulière. -
nogeom
(facultatif) : ce paramètre permet de ne pas retourner la géométrie des objets. -
Le format de réponse
La réponse à l’opération Recherche est au format GeoJSON. La réponse contient également des “méta-champs” tels qu’un identifiant de source de données et un score de vraisemblance.
NB : la réponse ne contient pas forcément une géométrie, soit parce que les sources de données n’en contiennent pas, soit parce que le paramètre nogeom
a été utilisé.
-
Exemple :
Recherche de l’adresse 73 avenue de Paris Saint-Mandé sur l’index locating en mode fuzzy |
https://wxs.ign.fr/essentiels/look4/user/search?indices=locating&method=fuzzy&match[fulltext]=73%20av%20de%20paris%20saint-mand%C3%A9 |
Titre
Les principaux concepts de Look4
-
les index
La recherche dans Look4 se fait sur des index. Un index est un regroupement d’une ou plusieurs sources de données (qui peuvent éventuellement être de type différents).
En général, un regroupement répondra à une thématique particulière. Par exemple :
- un index “locating” permet de trouver à la fois des adresses et des toponymes ;
- un index “wwwLayers” permet de trouver des couches WMTS/WMS/WFS issues de plusieurs serveurs de données spatiales (tels que ceux référencés par le Géocatalogue)
La liste complète des index est proposée via la requête : https://wxs.ign.fr/look4/user/discover/
-
les sources de données
Les sources de données sont découvrables et requêtables via des index (cf infra) plutôt que directement. Cependant la compréhension de la notion de source de donnée permet de mieux appréhender la provenance des contenus et la performance du service Look4.
Les sources de données de Look4 peuvent être :
-
soit indexées par Look4 ; Exemples : fichiers CSV, bases de données
-
soit des web services de recherche tiers auxquels Look4 fait appel. Exemple : catalogues CSW, services de géocodage, services OGC WFS, API REST, etc…
NB : les sources de données n’ont pas nécessairement une géométrie.
Les sources de données de Look4 publiées sur le Géoportail sont administrées par l’IGN. Il est possible de solliciter l’IGN (en écrivant à l’adresse contact.geoservices@ign.fr) pour en rajouter de nouvelles.
-
les types de données
Un Type de données est un modèle pour une ou plusieurs sources de données dans Look4. Les types de données de Look4 peuvent être très variés : adresses, points kilométriques, lieux publics, toponymes, etc…
Vous pouvez, via l’API de découverte :
- obtenir les types contenus dans un index :
https://wxs.ign.fr/look4/user/discover/<id>/type
(“id” étant l’identifiant d’un index) - obtenir le détail d’un type :
http://wxs.ign.fr/look4/user/discover/type/<id>
(“id” étant l’identifiant d’un type)
Dans la définition d’un type, les champ sémantiques :
- peuvent avoir la propriété “queryable” : le champ peut alors servir pour le matching ;
- peuvent avoir un boost, correspondant au poids relatif de ce champs lors des recherches fulltext ;
Une liste des champs (fulltext_fields
) définit l’ensemble des champs qui seront utilisés lors d’une requête fulltext.
-
les exceptions
Dans le cas où la requête ne peut être traitée, le service répond un exception en JSON avec un code HTTP différent de 200.
Les codes d’erreurs les plus courants sont les suivants (se référer à la documentation de l’API Utilisateur) :
- 400 : la requête présente une anomalie et ne peut être traitée ;
- 404 : une ressource demandée n’existe pas;
- 500 : il y a eu une erreur interne au serveur.
Le contenu de l’exception est un json contenant le code, un message et éventuellement des détails supplémentaires.
L’intégralité des réponses est documentée sur https://ignf.github.io/look4/latest/jsdoc/
Exemple :
GET /look4/user/search |
code: 400,
message: "Body request is empty"