Juisci : améliorer l'expérience de recherche avec ElasticSearch

Hervé Rincent

Hervé Rincent

12 avr. 2022

Juisci est une plateforme qui collecte les publications médicales pour en constituer des synthèses à destination des professionnels de santé.

La solution repose sur un pipeline de données qui analyse le contenu d'un grand nombre de sources scientifiques, et qui en extrait les informations pour les synthétiser en un contenu digeste.

Les professionnels de santé peuvent ainsi accéder directement à la spécialité concernée, aux conclusions, ou encore à un résumé de la méthodologie employée.


Pour accéder facilement au contenu, l'application comporte un système de suggestion qui envoie un shot de science en fonction du profil de l'utilisateur et de ses centres d'intérêts. Les publications peuvent également être partagées et recommandées auprès de collègues.

Et comme toute application dont la valeur repose sur le contenu, elle doit également proposer une excellente expérience de recherche.

L'objectif de la prestation était d'évaluer les possibilités d'ElasticSearch pour améliorer la pertinence des résultats d'une recherche formulée à partir d'un texte libre, "à la google".

L'intention de recherche, le matching et le score

L'étude débute par l'appropriation du contexte métier de Juisci et de la nature des articles (structure, contenu, méta-données).

Il s'agit ensuite de travailler à comprendre l'intention de recherche d'un utilisateur par différents cas d'usages : va-t-il indiquer le nom d'un auteur ? D'une revue scientifique ? D'une spécialité médicale ou d'une pathologie particulière ? Accepte-t-on les orthographes approximatives ?

Lors de cette première phase, on travaille donc la sélection des articles qui correspondent à l"intention.

Mais tout l'enjeu consiste ensuite à classer ces résultats par ordre de pertinence. Quels résultats doivent apparaître en premier ?

On établit donc des règles de priorité, qui portent sur :

Cependant, un paramétrage de ces règles de priorité "à l'aveugle" ne permet pas de résoudre les arbitrages ou les contradictions.  

Par exemple : doit-on faire apparaître en tête de liste un article ancien à fort impact, ou bien un article récent avec davantage d'occurrences du mot-clé dans le contenu ?

Un prototype pour affiner le calcul de score

Pour décider de l'odre dans lequel on présente les articles recherchés, on va calculer un score dans ElasticSearch. L'algorithme de scoring est défini à partir des règles de priorité et de paramètres numériques.

Pour déterminer les bons paramètres, mieux vaut s'appuyer sur un prototype fonctionnel.

En voici les principales étapes de sa constitution :

Cette démarche s'est avérée efficace, grâce à l'implication des équipes produits et techniques de Juisci.

"Hervé nous a aidé à mettre en place une base Elastic Search pour notre fonctionnalité de recherche sur l'application mobile, de manière extrêmement professionnelle, toujours force de proposition et en apportant une grande écoute au projet.
Nous réitérerons notre collaboration avec Hervé pour nos besoins futurs."
– Robin Roumengas, CEO de Juisci.

Continuer la lecture

Skills : piloter l'acquisition des compétences collectives de son équipe

7 janv. 2022

2 min read

Skills : piloter l'acquisition des compétences collectives de son équipe

Lire l'article
Inscription à la newsletter

Recevez chaque semaine un article pour réfléchir à votre prochain projet tech/data

gratuit, sans spam, désinscription en 1 clic

Merci ! Regardez dans botre boite mail. Un lien de confirmation n'attend plus que votre clic.
Arghh il semble compliqué de vous ajouter à la liste de diffusion. Et si vous m'envoyiez un mail directement à contact@camilab.co ?