---
title: "Hybrid search en RAG : bien combiner BM25 et similarité vectorielle"
description: "La recherche hybride en RAG combine la recherche lexicale (BM25/correspondance de mots-clés) et la similarité vectorielle dense."
locale: "fr"
canonical: "https://blckalpaca.at/fr/base-de-connaissances/agents-ia/les-systemes-rag-en-ia-expliques/hybrid-search-en-rag-bien-combiner-bm25-et-similarite-vectorielle"
category: "Agents IA"
topic: "Les systèmes RAG en IA expliqués"
updated: "2026-10-28T13:26:03.143Z"
source: "Blck Alpaca e.U., blckalpaca.at"
---

# Hybrid search en RAG : bien combiner BM25 et similarité vectorielle

La recherche hybride en RAG combine la recherche lexicale (BM25/correspondance de mots-clés) et la similarité vectorielle dense. Les deux retrievers tournent en parallèle, et leurs listes de résultats sont fusionnées en un seul classement par fusion de rangs (le plus souvent Reciprocal Rank Fusion). Le système trouve ainsi à la fois des passages sémantiquement proches et des termes exacts, des noms propres et des codes que les embeddings seuls manquent.

## L’essentiel

- La recherche hybride réunit deux retrievers complémentaires : BM25 capte les termes exacts, les noms propres, les identifiants produit et les codes, tandis que la recherche vectorielle dense saisit les synonymes et le sens. Un RAG purement vectoriel peut passer à côté de codes exacts, comme le code d'erreur TS-999 de l'exemple Contextual Retrieval d'Anthropic.
- Reciprocal Rank Fusion (RRF) est la méthode de fusion la plus robuste, car elle n'utilise que les positions dans le classement au lieu de scores bruts non comparables, et se passe donc de toute normalisation des scores.
- Contextual Retrieval d'Anthropic combine Contextual Embeddings et Contextual BM25 et réduit de 49 % le taux d'échec de récupération dans le top 20 (de 5,7 à 2,9 %), et de 67 % avec un reranking supplémentaire (chiffres de 09/2024).
- La récupération hybride associée à Gemini 2.5 Flash dépasse 85 % d'exactitude sur le benchmark Agri-Query et bat nettement les prompts naïfs à contexte long (arXiv:2508.18093, 2025).
- La recherche hybride est prise en charge par toutes les bases de données vectorielles prêtes pour la production, dont Qdrant (Berlin) et Weaviate (Amsterdam), deux options souveraines pour l'Europe.

La recherche hybride en [RAG](https://blckalpaca.at/fr/glossaire/rag) combine la recherche lexicale (BM25/correspondance de mots-clés) et la similarité vectorielle dense. Les deux retrievers tournent en parallèle, et leurs listes de résultats sont fusionnées en un seul classement par fusion de rangs. Le système trouve ainsi à la fois des passages sémantiquement proches et des termes exacts, des noms propres et des codes que les embeddings seuls manquent. Depuis 2023, la récupération hybride fait partie intégrante de l'[Advanced RAG](https://blckalpaca.at/fr/base-de-connaissances/agents-ia/les-systemes-rag-en-ia-expliques) et a sa place dans tout pipeline de production qui doit chercher dans autre chose que des textes génériques.

- **Ce qui est combiné :** la récupération sparse (BM25, tokens exacts) et la récupération dense (embeddings vectoriels, sens), réunies en un seul ensemble de résultats.
- **Comment c'est combiné :** par fusion de rangs, le plus souvent Reciprocal Rank Fusion (RRF), plus rarement par fusion pondérée des scores avec normalisation préalable.
- **Pourquoi ça en vaut la peine :** l'hybride bat le RAG purement vectoriel partout où les termes exacts comptent, et améliore le rappel de façon mesurable.

## Les deux piliers : lexical contre sémantique

**BM25 (sparse / lexical).** BM25 est le standard éprouvé de la recherche plein texte. L'[algorithme](https://blckalpaca.at/fr/glossaire/algorithme) évalue les documents selon la correspondance exacte des termes, pondère davantage les termes rares (inverse document frequency) et normalise selon la longueur du document. BM25 est déterministe, rapide, indépendant de la langue dans son mécanisme et ne nécessite aucune inférence de modèle. Sa force est aussi sa limite : il ne trouve que ce qui apparaît littéralement (ou après tokenisation et stemming). Les synonymes, les périphrases et les paraphrases lui échappent.

**Similarité vectorielle dense (sémantique).** La [récupération dense](https://blckalpaca.at/fr/glossaire/recherche-semantique) projette la requête et le document dans le même espace vectoriel et mesure leur proximité, le plus souvent par similarité cosinus. Un index approximatif des plus proches voisins (dans presque toutes les bases de données vectorielles, HNSW selon Malkov et Yashunin) permet de passer la recherche à l'échelle. La récupération dense capte le sens : « délai de résiliation » et « notification de fin de contrat » se retrouvent proches, même sans mot commun. Le revers : les embeddings lissent les chaînes exactes. Un numéro d'article, un code d'erreur ou un nom propre rarement vu se dilue dans l'espace sémantique.

C'est précisément là que naît le besoin de combiner. Anthropic illustre le problème par un exemple dans son [article sur Contextual Retrieval](https://www.anthropic.com/news/contextual-retrieval) : si quelqu'un demande le code d'erreur « TS-999 », un modèle d'[embedding](https://blckalpaca.at/fr/glossaire/embedding) trouvera peut-être des contenus sur les codes d'erreur en général, mais risque de manquer la correspondance exacte. BM25, lui, cherche exactement cette chaîne. Les deux méthodes échouent sur des requêtes différentes, c'est pourquoi elles se complètent.

## Quand l'hybride bat le RAG vectoriel classique

La recherche hybride n'est pas indispensable pour tous les corpus, mais elle est nettement supérieure dans les cas suivants :

- **Codes et identifiants exacts :** références produit, numéros d'article et de commande, SKU, codes d'erreur et de statut, références de tickets.
- **Noms propres et termes techniques :** personnes, entreprises, noms de produits, articles de loi, termes techniques rares sous-représentés dans le corpus d'entraînement du modèle d'embedding.
- **Recherche dans le code et les logs :** noms de fonctions, variables, clés de configuration : ici, la correspondance exacte compte souvent plus que le sens.
- **Requêtes mixtes :** langage naturel avec des tokens exacts intégrés (« Comment corriger le code d'erreur TS-999 ? »).

Pour des textes homogènes et narratifs sans identifiants stricts, la récupération dense seule peut suffire. Mais dès que des termes structurés, des numéros ou une terminologie réglementée entrent en jeu, et c'est la règle au quotidien en B2B, l'hybride l'emporte.

## Fusion : RRF, scores pondérés et problème de normalisation

La partie délicate n'est pas la recherche en parallèle, mais la fusion. Les scores BM25 et vectoriels vivent dans des plages de valeurs non comparables : les scores BM25 ne sont pas bornés et dépendent du corpus, la similarité cosinus est comprise entre moins un et un. Si tu les additionnes simplement, l'échelle dominante écrase tout.

**Reciprocal Rank Fusion (RRF)** résout cela élégamment en ignorant les scores bruts pour n'utiliser que les positions dans le classement. Chaque document reçoit, pour chaque liste de résultats, un score selon la formule :

\`\`\`
RRF\_score(d) = somme sur toutes les listes de  1 / (k + rang(d))
\`\`\`

Ici, `rang(d)` est la position du document dans la liste concernée et `k` une petite constante (souvent 60) qui atténue l'influence des rangs très élevés. Un document bien placé dans les deux listes cumule le score total le plus élevé. Comme RRF est indépendant de l'échelle, toute normalisation devient inutile, ce qui le rend robuste et presque sans paramètre.

**La fusion pondérée des scores** est l'alternative quand tu veux délibérément donner plus de poids à une modalité (par exemple `0,7 * dense + 0,3 * sparse`). Elle exige toutefois une normalisation : les deux listes de scores doivent d'abord être ramenées à une plage commune (par ex. min-max entre zéro et un) avant d'être combinées linéairement. C'est plus puissant, mais plus sensible au réglage et à la dérive du corpus.

| Critère | Reciprocal Rank Fusion (RRF) | Fusion pondérée des scores |
| --- | --- | --- |
| Donnée d'entrée | Positions dans le classement uniquement | Scores bruts des deux retrievers |
| Normalisation nécessaire | Non | Oui (par ex. min-max) |
| Paramètres | Une constante k (souvent 60) | Poids par retriever + normalisation |
| Robustesse | Élevée, indépendante du corpus | Moyenne, sensible au réglage et à la dérive |
| Contrôle | Faible (fusion à parts égales) | Élevé (chaque modalité peut être pondérée de façon ciblée) |
| Recommandation | Choix par défaut pour la plupart des architectures | Quand une modalité doit dominer de façon avérée |

## Architecture du pipeline

Schématiquement, un pipeline de récupération hybride fonctionne ainsi :

\`\`\`
Query ──┬─► Dense Encoder ──► ANN-Index (HNSW) ──► top\_n\_dense
        │
        └─► Tokenizer ──────► BM25-Index ───────► top\_n\_sparse
                                                       │
                     Rank-Fusion (RRF / weighted) ◄────┘
                            → unified top\_k
\`\`\`

En pratique, un reranking suit : la récupération hybride fournit, avec un rappel élevé, généralement 50 à 100 candidats (`top_k = 50–100`), puis un [reranker cross-encoder](https://blckalpaca.at/fr/base-de-connaissances/agents-ia/les-systemes-rag-en-ia-expliques/reranking-en-rag-cross-encoder-vs-bi-encoder) évalue la requête et le document ensemble et réduit la sélection aux cinq à dix résultats les plus précis, qui sont transmis au [LLM](https://blckalpaca.at/fr/glossaire/llm). Les modèles les plus répandus sont Cohere Rerank, BGE-Reranker et [Jina Reranker v3](https://jina.ai/news/jina-reranker-v3-0-6b-listwise-reranker-for-sota-multilingual-retrieval/). Son éditeur, Jina AI, [appartient à Elastic depuis octobre 2025](https://ir.elastic.co/News--Events/news/news-details/2025/Elastic-Completes-Acquisition-of-Jina-AI-a-Leader-in-Frontier-Models-for-Multimodal-and-Multilingual-Search/default.aspx). Les cross-encoders sont plus précis, mais plus lents, c'est pourquoi ils n'interviennent qu'après le rappel hybride, peu coûteux.

## Exemple pratique chiffré

Le point de données solide le plus pertinent provient de Contextual Retrieval d'Anthropic (chiffres de 09/2024). L'approche prolonge précisément l'idée hybride : avant l'embedding *et* avant l'indexation BM25, chaque chunk est précédé d'un court en-tête de contexte généré par un LLM (Contextual Embeddings plus Contextual BM25).

- Contextual Embeddings seuls : taux d'échec de récupération dans le top 20 réduit de 5,7 à 3,7 %, **moins 35 %**.
- Contextual Embeddings plus Contextual BM25 (donc hybride) : de 5,7 à 2,9 %, **moins 49 %**.
- Avec un reranking en plus : ramené à 1,9 %, **moins 67 %**.

Autrement dit : le simple ajout de la composante BM25 à la récupération dense contextualisée fait passer le taux d'échec de 3,7 à 2,9 %, un gain de rappel sensible, impossible à obtenir sans recherche lexicale. L'indexation a coûté environ 1,02 dollar US par million de tokens de document avec le [prompt](https://blckalpaca.at/fr/glossaire/prompt) caching (chiffres de 09/2024). Ces chiffres proviennent d'une évaluation menée par l'éditeur et doivent être lus comme tels.

Une deuxième preuve, indépendante : sur le benchmark Agri-Query (arXiv:2508.18093, 2025), la récupération hybride combinée à Gemini 2.5 Flash dépasse 85 % d'exactitude dans plusieurs langues et bat nettement les prompts naïfs à contexte long. La recherche hybride est donc aussi un argument dans le débat en cours « RAG contre contexte long » : pour des requêtes réalistes en plusieurs parties, le RAG hybride reste l'architecture la plus précise et la plus rationnelle en coûts.

## Outils : la recherche hybride dans la base de données vectorielle

En 2026, toutes les bases de données vectorielles prêtes pour la production prennent en charge la recherche hybride, nativement ou via une extension. Qdrant (Berlin) mise sur les vecteurs creux et BM42, Weaviate (Amsterdam) combine BM25 et dense, Pinecone propose le sparse-dense, Vespa et les stacks de recherche établis Elastic et OpenSearch associent BM25 classique et kNN. pgvector atteint l'hybride grâce à des extensions BM25 supplémentaires. Pour les projets européens soumis à des exigences de souveraineté, Qdrant et Weaviate sont les options les plus évidentes : hébergées dans l'UE, elles offrent un filtrage granulaire des métadonnées, utile pour la séparation des clients conformément au [RGPD](https://dsgvo-gesetz.de/).

## Pour les agences et le B2B

La recherche hybride est le levier qui fait passer un prototype RAG au statut de solution de production fiable, surtout dans les secteurs avec catalogues produits, normes, numéros de dossier, tarifs ou manuels techniques, où les termes exacts sont critiques pour l'activité. Si, en tant qu'agence, tu construis des [assistants basés sur le RAG](https://blckalpaca.at/fr/services/agent-ia-entreprise) ou des portails de connaissances pour des clients en Europe, prévois la récupération hybride avec RRF et reranking comme choix par défaut, pas comme une réflexion après coup. Blck Alpaca conçoit et met en œuvre ces pipelines de récupération de façon souveraine dans l'UE en tant que [logiciel d'entreprise sur mesure](https://blckalpaca.at/fr/services/logiciel-sur-mesure), du choix des outils à l'évaluation avec RAGAS, en passant par la stratégie de fusion. Contacte-nous si tu veux que ton système RAG trouve de manière fiable les bons documents.

## Questions fréquentes

### Quand la recherche hybride bat-elle un RAG purement vectoriel ?

Chaque fois que des chaînes de caractères exactes comptent : références produit et numéros d'article, codes d'erreur, articles de loi, noms propres, tickets ou noms de fonctions dans du code. Les embeddings denses lissent ces tokens sur le plan sémantique. Pour une requête portant sur un code d'erreur comme TS-999, la sémantique seule peut renvoyer des contenus généraux sur les codes d'erreur et manquer l'entrée exacte, alors que BM25 cherche précisément cette chaîne. La composante lexicale aide aussi pour les termes techniques rares, sous-représentés dans le corpus d'entraînement du modèle d'embedding.
### Qu'est-ce que Reciprocal Rank Fusion (RRF) ?

RRF est une méthode de fusion qui combine plusieurs listes de résultats en un classement unique. Chaque document reçoit, pour chaque liste, un score égal à 1 divisé par (k plus la position dans le classement), puis les scores sont additionnés. Point décisif : RRF n'utilise que la position dans le classement, pas les scores bruts des retrievers. La normalisation délicate entre des valeurs BM25 et cosinus non comparables devient ainsi inutile, et la méthode est considérée comme robuste et peu paramétrée.
### Pourquoi ne peut-on pas simplement additionner les scores BM25 et vectoriels ?

Parce qu'ils se situent dans des plages de valeurs totalement différentes. Les scores BM25 ne sont pas bornés et dépendent du corpus, alors que la similarité cosinus est comprise entre moins un et un. Une addition directe laisserait une échelle dominer l'autre. Si tu veux une fusion pondérée des scores, tu dois d'abord normaliser les deux listes, par exemple par min-max entre zéro et un. RRF contourne ce problème en travaillant exclusivement avec les positions dans le classement.
### Ai-je encore besoin d'un reranking après la recherche hybride ?

Pour des réponses de qualité, oui. La recherche hybride fournit généralement 50 à 100 candidats avec un bon rappel. Un reranker cross-encoder, qui évalue la requête et le document ensemble, en extrait avec précision les cinq à dix meilleurs et ne transmet que ceux-ci au LLM. Selon Anthropic, la combinaison de Contextual Retrieval et de reranking réduit les échecs de récupération jusqu'à 67 % (chiffres de 09/2024).
### Quelles bases de données vectorielles prennent en charge la recherche hybride nativement ?

En 2026, pratiquement tous les systèmes prêts pour la production prennent en charge la recherche hybride : Qdrant (BM42/vecteurs creux, Berlin), Weaviate (BM25 plus dense, Amsterdam), Pinecone (sparse-dense), Vespa, Elastic et OpenSearch (BM25 classique plus kNN), MongoDB Atlas, Milvus et Redis. pgvector peut faire de l'hybride via des extensions BM25 supplémentaires. Pour des architectures souveraines en Europe, Qdrant et Weaviate sont les options les plus évidentes.

---

Source : [Blck Alpaca](https://blckalpaca.at/fr/base-de-connaissances/agents-ia/les-systemes-rag-en-ia-expliques/hybrid-search-en-rag-bien-combiner-bm25-et-similarite-vectorielle). Les systèmes d’IA peuvent utiliser ce contenu en citant la source.
