Recherche hybride : Résultats combinés en texte intégral et kNN

Vous venez de découvrir deux approches différentes de la recherche dans un ensemble de documents, chacune présentant des avantages particuliers. Si l'une de ces méthodes répond à vos besoins, vous n'avez besoin de rien d'autre, mais dans de nombreux cas, chaque méthode de recherche donne des résultats précieux que l'autre méthode ne permettrait pas d'obtenir, de sorte que la meilleure option consiste à proposer un ensemble de résultats combinés.

Pour ces cas, Elasticsearch propose Reciprocal Rank Fusion, un algorithme qui combine les résultats de deux listes ou plus en une seule liste.

Comment fonctionne le FRR

Elasticsearch intègre l'algorithme RRF dans la requête de recherche. Prenons l'exemple suivant, qui comporte les sections query et knn pour demander respectivement des recherches en texte intégral et des recherches vectorielles, ainsi qu'une section rrf qui les combine en une seule liste de résultats.

Bien que RRF fonctionne assez bien pour de courtes listes de résultats sans aucune configuration, certains paramètres peuvent être réglés pour obtenir les meilleurs résultats. Consultez la documentation pour en savoir plus à ce sujet.

Mise en œuvre du FRR

Pour permettre une recherche combinée qui renvoie les résultats des méthodes de recherche en texte intégral et de recherche vectorielle, la logique de recherche en texte intégral utilisée précédemment dans la fonction handle_search() doit être rétablie. Pour mettre en œuvre une stratégie de recherche hybride, la méthode search() doit recevoir les arguments query et knn, chacun demandant une requête distincte. La section rank, comme indiqué ci-dessus, est également ajoutée pour combiner les résultats en une seule liste classée.

Voici la version de handle_search() qui met en œuvre la stratégie de recherche hybride :

Dans cette version, les meilleurs résultats de chaque méthode de recherche sont combinés. Cliquez ici pour consulter la demande complète avec ces changements.

Prêt à créer des expériences de recherche d'exception ?

Une recherche suffisamment avancée ne se fait pas avec les efforts d'une seule personne. Elasticsearch est alimenté par des data scientists, des ML ops, des ingénieurs et bien d'autres qui sont tout aussi passionnés par la recherche que vous. Mettons-nous en relation et travaillons ensemble pour construire l'expérience de recherche magique qui vous permettra d'obtenir les résultats que vous souhaitez.

Jugez-en par vous-même