Recherche facettée avec MongoDB

La recherche facettée avec MongoDB  évolue avec la sortie de la version 3.4. Concrètement, cette recherche (faceted search) permet aux utilisateurs de filtrer une collection de données selon un ou plusieurs critères (les facettes). C’est exactement ce qui vous permet de trouver Batman parmi les super-héros en fonction de son univers (DC), sa ville (Gotham) et son symbole (chauve-souris).

Méthode 1 : La Brute

Le document contient des données en double car il faut dupliquer les données des facettes. Chaque document devient donc plus lourd. De plus, l’index est plus lourd qu’avec les autres méthodes.

Méthode 2 : Le Truand

Le document reste simple et devient même plus concis. Il faut créer un index par facette, pourtant le poids des index est inférieur à celui de l’index de la méthode 1. Par contre il est nécessaire de faire une aggrégation par facette.

réécrire en explosant les facettes et tester. ?

Méthode 3 : Le Bon

Parmi les nouveautés de la version 3.4 de MongoDB, vous trouverez $facet et $bucket qui facilite la gestion des facettes. Le document n’est pas modifié pour les facettes. Aucun index spécifique n’est requis pour fonctionner.

Astuce

Pour connaitre les versions de MongoDB, voici deux commandes à exécuter dans le shell mongo :
version() : connaitre la version du client MongoDB
db.version() : connaitre la version de MongoDB

Références

Faceted Search with MongoDB

$facet dans la documentation MongoDB

$bucket dans la documentation MongoDB

RelatedPost

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *