Hierarchical facets avec Elasticsearch

Elasticsearch est devenu un outil incontournable pour l’indexation de documents et la recherche textuelle. Un des rares reproches qui pouvait lui être fait il y a quelques mois était son absence de support des facets hiérarchiques. Il s’agit en effet d’une fonctionnalité très utile et demandée dans les sites e-commerce.

Pour ceux qui ne seraient pas familiers avec le vocabulaire des moteurs de recherche, une « facet » (ou recherche à facette en français) permet de regrouper des données sur des résultats de recherche. Elles sont calculées en temps réel et on les retrouve très souvent sur les catégories d’un site e-commerce. Les facets permettent par exemple de retrouver toutes les catégories associées à des résultats de recherche, avec le nombre d’éléments correspondants.

Autocompletion avec Elasticsearch

Lors de la saisie d’adresses dans des formulaire, une source fréquente de problèmes est la saisie des villes et codes postaux: gestion des accents, minuscules ou majuscules, code postal ne correspondant pas à la ville, etc.

Nous allons voir l’implémentation rudimentaire d’un autocomplete sur les noms et codes postaux des villes qui tient compte de ces soucis.