Elasticsearch est un moteur de recherche et d'analyse distribué, open source, construit sur Apache Lucene. Il permet d'indexer, de rechercher et d'analyser de grands volumes de données en quasi temps réel. C'est la référence pour implémenter une recherche full-text performante dans une application web.
Ses fonctionnalités vont bien au-delà de la recherche simple : recherche floue (tolérance aux fautes de frappe), suggestions automatiques (autocomplétion), filtres à facettes, recherche géographique, agrégations statistiques et scoring de pertinence personnalisable. Ces capacités permettent de construire des expériences de recherche riches, comparables à celles des grandes plateformes.
Dans un projet Symfony, Elasticsearch s'intègre via des bibliothèques comme FOSElasticaBundle ou des clients PHP natifs. L'architecture type : les données métier restent dans la base relationnelle, Elasticsearch sert d'index optimisé pour la lecture. Les modifications sont synchronisées automatiquement via des listeners Doctrine ou des messages asynchrones.