Gestion de suggestions dans les plugins de recherche

MozSearch offre la gestion des suggestions de recherche ; au fur et à mesure que l'utilisateur saisit des caractères dans la barre de recherche, Firefox 2 demande à l'URL spécifiée par le plugin de lui fournir des suggestions de recherche.

Une fois la liste récupérée, elle est affiche dans une liste déroulante en dessous de la barre de recherche, permettant à l'utilisateur de sélectionner une des propositions s'il le souhaite. S'il continue à ajouter des caractères, de nouvelles suggestions sont demandées au moteur de recherche, puis utilisées pour rafraîchir la liste précédente.

Les plugins de recherche Yahoo et Google inclus dans Firefox 2 utilisent la suggestion de recherche.

Implémenter le support de la suggestion dans le plugin de recherche

Pour offrir des suggestions de recherche, un plugin doit comporter un élément <Url> supplémentaire dont l'attribut type vaut "application/x-suggestions+json". (Cela signifie que le plugin d'un moteur de recherche offrant des suggestions de recherche contient deux éléments <Url>, l'autre étant l'URL de recherche text/html principale.)

Par exemple, le plugin de recherche Yahoo contient l’élément <Url> suivant :

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}"/>

Si l'utilisateur entre « fir » dans la barre de recherche, puis fait une pause, Firefox remplace {searchTerms} par « fir » et contacte cette URL :

<Url type="application/x-suggestions+json" template="http://ff.search.yahoo.com/gossip?output=fxjson&command=fir"/>

Les résultats sont utilisés pour créer la liste de la boite de suggestion.

Consultez la page de création d'un plugin MozSearch pour plus de détails sur l’implémentation d’un plugin de recherche.

Implémenter le support des suggestions de recherche sur le serveur

La plus grande partie du travail de la suggestion de recherche se passe du coté du serveur. Si vous êtes concepteur de site Web et que vous désirez proposer des suggestions de recherche, vous devez prévoir la possibilité de renvoyer des suggestions correspondant à un terme de recherche avec la Notation JSON (en) (JavaScript Object Notation).

Quand le navigateur désire obtenir une liste de correspondances possibles pour un terme recherché, il envoie une requête HTTP GET à l'URL spécifiée dans l'élément <Url>.

Votre serveur doit alors décider des suggestions à faire en utilisant le moyen qu'il jugera adéquat, puis construire un JSON composé d'au minimum deux, et au maximum quatre éléments :

chaîne de recherche
Le premier élément du JSON est le terme de recherche qui a été communiqué au serveur. Cela permet à Firefox de vérifier que les suggestions correspondent au terme de recherche actuel.
liste de suggestions
Un tableau des termes de recherche suggérés. Le tableau est placé entre crochets. Par exemple : <tt>["terme 1", "terme 2", "terme 3", "terme 4"]</tt>
descriptions
Cet élément optionnel est un tableau de descriptions correspondant à chacun des éléments de la liste de suggestions. Il peut s'agir de n'importe quelle information supplémentaire que le moteur de recherche désire voir affichée par le navigateur, comme nombre de résultats disponibles pour une suggestion.
Les descriptions ne sont pas supportées dans Firefox 2, et sont ignorées lorsqu’elles sont spécifiées.
URL spécifiques associées à des requêtes
Cet élément optionnel est un tableau d'URL alternatives pour chacune des suggestions de la liste de suggestions. Par exemple, si pour une suggestion donnée vous préférez donner un lien vers une carte plutôt qu'une simple page de résultats de recherche, vous pouvez retourner une URL vers une carte dans ce tableau.
Si vous ne spécifiez pas d'URL spécifique pour un élément de la liste de suggestions, c'est la requête par défaut, décrite par l’élément <Url> dans la description XML du plugin, qui sera employée.
Les URL associées à des requêtes ne sont pas supportées dans Firefox 2, et sont ignorées lorsqu'elles sont spécifiées.

Ainsi, si le terme de recherche est « fir », et si vous ne désirez renvoyer ni les descriptions, ni les URL associées aux requêtes, vous pouvez renvoyer le JSON suivant :

["fir", ["firefox", "first choice", "mozilla firefox"]]

Remarquez que dans cet exemple, seules la chaîne de recherche et la liste de suggestions sont spécifiées, et les éléments optionnels sont négligés.

Votre liste de suggestions peut comporter autant d'éléments que vous le souhaitez, mais elle devrait être limitée à une longueur raisonnable étant donné que l'affichage doit être rafraîchi au fur et à mesure que l'utilisateur compose son terme de recherche. Enfin, notez que vous êtes entièrement libre quant à la méthode que vous employez pour sélectionner les suggestions à envoyer.

Étiquettes et contributeurs liés au document

Contributeurs ayant participé à cette page : BenoitL, Mgjbot, Chbok, Planche
Dernière mise à jour par : Mgjbot,