Text Index

MongoDB 🟡 Mid

Définition

Index spécial pour la recherche full-text sur des champs textuels. Supporte le stemming, les stop words et les poids par champ. Une seule text index par collection.

Analogie

Un moteur de recherche interne qui comprend les variantes des mots comme un humain.

Exemple de code

db.articles.createIndex(
  { title: 'text', body: 'text' },
  { weights: { title: 10, body: 1 } }
);
db.articles.find({ $text: { $search: 'mongo' } });

Cas d'usage

Implémenter une barre de recherche sur un blog ou un catalogue de produits.

Anti-pattern

Utiliser $regex pour la recherche textuelle au lieu du text index, bien plus lent.
#sgbd#interview#database#mongodb

En entretien

  1. Qu'est-ce qu'un text index et quelles fonctionnalités supporte-t-il ?

    C'est un index spécial pour la recherche full-text sur des champs textuels, qui supporte le stemming, les stop words et les poids par champ, comme un moteur de recherche interne qui comprend les variantes des mots. Une seule text index est autorisée par collection.

  2. Pourquoi éviter $regex pour implémenter une recherche textuelle ?

    Parce que $regex est bien plus lent qu'un text index pour ce cas d'usage, c'est d'ailleurs l'anti-pattern identifié sur ce sujet. Le text index est fait pour ça, par exemple pour une barre de recherche sur un blog ou un catalogue de produits.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre