OpenSearch : spécification pour standardiser les fonctions de recherche en ligne

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 21/05/13
  • Correction mineure : 21/05/13
Mots-clés

OpenSearch : spécification pour standardiser les fonctions de recherche en ligne

  • http://www.opensearch.org
  • Type de ressource : résumé
  • Date de publication du document ou de l'événement : 2005
  • Auteur(s) ou responsable(s) : A9 (filiale d'Amazon.com)

Description courte :

OpenSearch est une spécification qui offre des services de recherche sur un site Internet et ce, indépendamment de la technologie du moteur de recherche utilisé par ce site. L'objectif est de proposer un standard pour la recherche et la publication sur Internet.

Avec cette technologie, il est ainsi possible d'agréger et d'afficher les résultats de plusieurs sites de recherche différents. On peut par exemple effectuer la même requête sur une base de données documentaire, un dictionnaire en ligne et un wiki, et afficher les résultats sur une même page.

Il est également possible de rajouter son moteur de recherche sur n'importe quel client de recherche qui contient un agrégateur OpenSearch (dans lequel on peut configurer son fichier de description OpenSearch). L'un des exemples d'utilisation les plus connus de cette technologie est l'intégration de listes de sites de recherche dans les navigateurs web (champ de recherche situé à droite de la barre d'URL sur Firefox et Internet Explorer).

Documents de standardisation : La dernière spécification se trouve ici : OpenSearch 1.1 (Draft 5)

Description détaillée :

OpenSearch ne remplace pas un moteur de recherche mais propose donc une surcouche afin d'uniformiser les formats de publication. En ce sens, on peut apparenter cette technologie à un « service web » pour la recherche sur Internet.

Techniquement, OpenSearch utilise XML et les flux de syndication (RSS ou Atom).

Pour pouvoir offrir tous les composants nécessaires à la recherche standardisée sur Internet, la spécification OpenSearch est composée de quatre formats complémentaires :

  • OpenSearch description document

    C'est un fichier XML qui identifie et décrit le moteur de recherche. En plus de l'adresse du namespace de la spécification «http://a9.com/-/spec/opensearch/1.1/», ce fichier doit contenir au moins les 3 balises obligatoires suivantes : ShortName pour le nom du service, Description pour sa description et Url qui contient l'adresse du site de recherche.

  • OpenSearch URL template syntax

    Ce format contient différents paramètres qui permettent de décrire la syntaxe de recherche utilisée par le moteur de recherche. Il précise notamment les règles de grammaire de l'attribut template de la balise Url utilisée dans le document de description précédent.

  • Opensearch Query element

    Ce format permet de configurer des requêtes spécifiques par un client de recherche. Il est composé d'un ensemble d'attributs de la balise Query. On peut par exemple proposer un exemple de requête qui peut être effectuée sur le moteur de recherche ou encore afficher des résultats avec des mots proches de celui utilisé par la requête (mais contenant une faute d'orthographe par exemple).

  • OpenSearch response elements

    C'est le format de présentation des résultats de recherche. Les formats possibles nativement sont RSS 2.0 et Atom 1.0. D'autres formats de publication sont possibles comme HTML/XHTML.

En plus de ces formats, il existe plusieurs extensions, parmi lesquelles :

  • Referrer

    Permet de fournir des informations sur la source effectuant la recherche, comme par exemple le logiciel client utilisé

  • Relevance

    Permet d'indiquer le score de chaque résultat d'une recherche donnée

  • Suggestion

    Permet l’auto-complétion de mots dans le champ de recherche.

Pour l'utilisation de chacune de ces extensions, il faudra ajouter l'adresse du namespace XML de la spécification dans le fichier de description.D'autres extensions sont encore à l'état de draft mais offriront des possibilités intéressantes, notamment :

  • Geo extension

    Propose de fournir un mécanisme standard pour effectuer des recherches sur des données géographiques, comme des coordonnées ou des noms d'endroits.

  • Mobile extension

    Propose un mécanisme standard pour adapter les recherches de type OpenSearch aux terminaux mobiles, notamment dans l'affichage des résultats.

Utilisations recommandées :

Tout site utilisant OpenSearch peut être directement intégré au navigateur en utilisant la zone de recherche adaptée.

OpenSearch peut également être utilisé sur des applications hébergeant des moteurs de recherche et fournissant des services en ligne. Cela peut rendre l'application plus générique et permet d'accepter des requêtes à partir d'autres applications. Un exemple d'application en milieu scientifique est le logiciel SITools2 qui intègre nativement un champ de recherche OpenSearch. D'autre part, de nombreux CMS ou wiki implémentent opensearch soit de manière native soit grâce à un plugin: par exemple WordPress, SPIP,Drupal, PLONE, GetNetwork, DokuWiki, MediaWiki

OpenSearch est également très utilisé pour les recherches sur les sites bibliographiques car contenant de multiples bases de données provenant de sources différentes (voir par exemple le site de la revue internationale Nature : http://www.nature.com/opensearch).

Exemple de mise en œuvre :

Pour pouvoir configurer un service OpenSearch sur un moteur de recherche, il faut effectuer les trois étapes suivantes :

  • Configurer le moteur de recherche pour proposer en option une réponse au format RSS ou Atom (cela permettra d'utiliser les paramètres du format OpenSearch response elements)

  • Créer un fichier de description au format OpenSearch description document

    Le fichier minimum doit être de la forme :

    <?xml version="1.0" encoding="UTF-8"?>
    <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
      <ShortName>${name}</ShortName>
      <Description>${name}</Description>
      <Url type="application/html" template="${url}/suggest?q={searchTerms}">
      </Url>
    </OpenSearchDescription>

    Où ${name} est le nom du site et ${url} l’adresse du site.

  • Publier le fichier précédent en ajoutant un lien dans le header de la page d'accueil du site de recherche.

    Si par exemple le fichier s'appelle opensearch.xml :

    <link rel="search" type="application/opensearchdescription+xml" title="${name}" href="${url}/opensearch.xml">

Une étape supplémentaire peut être d'envoyer ce fichier de description à l'un des annuaires de moteurs de recherche supportant OpenSearch pour faire connaître le service de recherche.

Il existe en outre de nombreuses bibliothèques qui implémentent les services OpenSearch. Une liste détaillée se trouve ici :
http://www.opensearch.org/Community/OpenSearch_sof...