Recherche géographique: la pertinence d’Exalead appliquée aux cartes

La recherche géographique a longtemps été un domaine réservé aux éditeurs de bases de données et aux moteurs verticaux spécialisés dans les données très structurées de type annuaire ou cartographiques. Cependant, les internautes sont de plus en plus exigeants quant à la compréhension de leur recherche par les moteurs, et admettent plus difficilement qu’on leur demande de remplir des formulaires complexes de type rue, code postal, ville, pays, etc. Ainsi, même si les recherches portent sur des données à l’origine totalement maîtrisées et structurées, les outils traditionnels ne sont en revanche pas adaptés pour répondre de façon pertinente aux requêtes en texte libre des utilisateurs. D’autre part, les sites de recherche locale ont en général une fréquentation importante et de fortes contraintes sur les temps de réponse, donc les performances et la fiabilité de ce type d’application sont critiques.

La recherche en texte libre est un problème complexe en raison du grand nombre de descripteurs géographiques différents que l’utilisateur peut entrer pour cibler sa requête : nom de ville, code postal, adresse plus ou moins complète, département ou région, mais aussi noms de lieux particuliers (par exemple « tour Eiffel », « métro République », « centre commercial Bay 2 ») ou encore une zone de voisinage plus ou moins bien définie (par exemple « proche de la gare », « bord de mer », etc). Le moteur de recherche doit donc combiner efficacement l’analyse de la requête et le classement des résultats pour fournir une réponse en rapport avec ce que cherche l’utilisateur: « restaurant corse paris » doit renvoyer les restaurants parisiens proposant de la cuisine Corse, alors que « hotel avec piscine corse » doit renvoyer une liste d’hôtels avec piscine situés en Corse…

Pour adresser ces problèmes de désambiguation et de pertinence, Exalead fournit plusieurs outils qui permettent d’exploiter l’information issue de la structure des données indexées, tout en permettant à l’utilisateur d’entrer sa question en texte libre dans une boîte de requête unique.

Tout d’abord, les connecteurs d’exalead one:enterprise et les modules de traitement des documents associés permettent aux administateurs de configurer très finement la transformation des colonnes des tables relationnelles indexées en champs de recherche textuelle. Ainsi, chaque champ de la base de donnée peut être indexé avec une pondération spécifique décrivant la « pertinence » de ce champ vis à vis d’une recherche. Par exemple, la « pertinence » d’un nom de rue sera inférieure à la « pertinence » d’un nom de ville, de sorte que les restaurants de la ville de Nantes seront mieux classés dans la requête « restaurant Nantes » que les restaurants situés rue de Nantes dans une ville voisine. En jouant ainsi sur la pondération relative des différents champs, on conserve une partie de la structure initiale de la base, sans pour autant renoncer à la flexibilité du texte libre.

Ensuite, les fonctionnalités de navigation contextuelle d’exalead one:enterprise permettent à l’utilisateur d’affiner facilement sa requête pour préciser un nom de lieu ou une catégorie géographique. Par exemple, si on cherche la mairie de Neuilly, on trouvera plusieurs mairie (une pour chaque ville dont le nom contient « Neuilly »), et la liste de résultat permettra si nécessaire d’affiner la recherche sur le Neuilly qui nous intéresse. Par contre, si on cherche une personne ou une entreprise particulière à « Neuilly », la liste de résultat contiendra des documents correspondant à une seule de ces villes, et il n’y aura aucun besoin d’affiner. On évite ainsi la frustration de devoir passer sans cesse par des écrans de désambiguation manuelle lorsque c’est inutile.

Enfin, ces techniques de pondération et de navigation peuvent bien sûr être complétées par une pré-analyse de la requête, afin par exemple de détecter des noms de ville ou des noms de lieu particulier. La plate-forme Exalead fournit ainsi des outils simples et puissants pour créer des dictionnaires de noms particuliers, que l’on peut appliquer à la requête pour détecter des motifs définis et le cas échéant réécrire la requête pour la rendre plus pertinente.

Le modèle type d’une application de recherche géographique comporte les objets que l’on veut chercher (restaurants, hotels, appartement à vendre ou à louer etc) et les lieux qui serviront à définir les critères de recherche (villes, rues, stations de métro, mais aussi écoles ou plages). Le but de l’application est de retrouver, à partir d’une description d’objet et d’une description de lieu, les objets les plus pertinents. Le « secret » des moteurs de recherche est d’effectuer le plus de calculs possibles au moment de l’indexation des documents, afin que l’exécution des requêtes soient moins coûteuses et donc plus rapides.

Contrairement à une base de données relationnelle qui va d’abord traduire la description de lieu en coordonnées géographiques, puis rechercher les objets proches de ces coordonnées, le moteur de recherche va associer à chaque objet, lors de son indexation, la liste de tous les lieux situés au voisinage de cet objet. Ainsi l’exécution de la requête se réduit à une « simple » recherche textuelle sur les identifiants de lieux, en utilisant les principes de pondération de score décrits plus haut pour classer les résultats par pertinence.
Ce mécanisme permet non seulement de fournir de très bonnes performances de recherche, mais également d’effectuer des recherches sur des zones géographiques de forme arbitraires, et pas seulement sur des rectangles.

Les commentaires sont fermés.