Elasticsearch est un moteur de recherche qui séduit de plus en plus de personnes. Et pour cause, les fonctionnalités qu'il propose en font un outil de choix pour quiconque souhaite analyser des documents :
- il est distribué, permettant ainsi d'évoluer pour tenir la charge ou rechercher à travers d'avantage de documents,
- propose un language de recherche avancé, pour répondre à un large ensemble de besoins,
- est facilement déployable, notamment en environnement de développement.
Elasticsearch est ainsi souvent utilisé pour stocker et rechercher des logs, ou en tant que "datastore" secondaire couplé à une base de données existante pour apporter plus de performance sur les recherches dites "full-text".
A travers un exemple d'intégration avec Django Rest Framework, cette présentation sera ainsi l'occasion de faire un rapide tour sur le fonctionnement d'Elasticsearch et de partager des trucs et astuces. Seront passés en revue :
- la gestion de l'authentification et des permissions,
- la sérialization des résultats retournés par Elasticsearch et leur pagination,
- l'optimisation des recherches sur des indices organisés par date,
- la gestion de mapping avec elasticsearch_dsl,
- l'écriture de tests unitaires,
- l'utilisation d'Elasticsearch sur un serveur d'intégration continue.
[Conférence donnée lors de la PyConFR 2015]