La nouveauté du jour, c’est la mise en ligne d’une nouvelle version des moteurs de recherche avancé des objets et des neomarco.
Avant
Un champ de texte libre permettait de chercher les mots clés dans tous les champs de texte des fiches (objets ou neomarco), y compris les champs d’adresse, ville, pays, …
Un menu déroulant permettait de restreindre à un pays.
L’inconvénient c’est qu’un recherche du type “vase paris” pouvait remonter des vases vendus dans une boutique sur le “boulevard de Paris” à Marseille ; pas très pertinent tout ça !
Après
Un champ de texte libre pour “quoi ?” permet de rechercher dans les champs de description de l’objet (ou du neomarco).
Un autre champ libre “ou ?” permet de restreindre sa recherche d’un point de vue géographique.
Ce sont les API de geocodage de Google et Yahoo! qui sont ici mises à profit pour transformer une demande de type “Paris”, “Indonésie”, “San Andreas, CA”, ou encore “3 place de l’église de St Henri, 13016 Marseille, France” en un point GPS.
Selon la qualité du géocodage – du niveau national jusqu’au niveau de l’adresse postale – on détermine un rayon de recherche (qui peut aussi être forcé manuellement)
À partir de ce point GPS de référence et du rayon, on recherche dans la base de données les objets ou neomarco qui sont dans ce cercle.
Ce type de recherche est possible grace au fait que depuis le début on peut géolocaliser les objets que l’on dépose ainsi que sa propre fiche neomarco. Pour les fiches qui ne seraient pas localisées (c’était optionnel pendant plusieurs semaines) on a lancé un automate qui a automatiquement géolocalisé les fiches pour lesquelles les API ne donnaient qu’un seul résultat (pas de doute possible donc). Sur près de 3000 neomarco et 1700 objets, il y en a moins d’une dizaine à chaque fois qui ne peuvent pas être localisés.
Lors de la recherche, si la saisie de l’utilisateur ne donne pas qu’un seul résultat, une liste est proposée, il peut choisir et lancer sa recherche.
Plus tard
On aimerait afficher explicitement sur la carte des résultats le rayon de recherche. C’est tout à fait possible, reste à faire !
On souhaite aussi afficher des marqueurs photo (la vignette du neomarco ou de l’objet) plutôt qu’un marqueur générique.
Si vous avez déjà été sur http://panoramio.com/, vous verrez ce qu’on vise, mais là c’est beaucou plus dur.
En effet, Google a créé une couche de données supplémentaire sous forme de “Overlay” plutôt que des marqueurs. Ça leur permet d’affecter des actions Javascript, … sur les images mais la mise en œuvre est beaucoup plus complexe.
Actuellement les recherches de neomarco et d’objets sont séparées, on aimerait combiner les 2 moteurs.
Enfin, l’utilisation d’index plutôt que de faire des “Select * From … Where …” sur les tables de contenus permettrait de faire des classements par pertinence, de ne pas remonter bêtement “tableau” ou “respectable” lorsqu’on cherche “table”, … Pour ça a priori on va utiliser Sphinx et le plugin ThinkingSphinx pour Rails.
Mots-clefs : api, rails, recherche, thinkingsphinx
[...] changements intervenus ces derniers jours au niveau du moteur de recherche “avancé” (voir l’article détaillé), nous avons adapté la recherche “rapide”, présente sur toutes les [...]