Présentation d’ElasticSearch

Une présentation rapide d’une autre base de donnée NoSQL libre qui permet bien plus que le simple stockage de datas.

Publié le

ElasticSearch est un moteur d’indexation monté sur une structure NoSQL décentralisé.

C’est surtout une base de donnée orientée document, qui intègre un puissant moteur de recherche.

Une base de donnée document stocke une structure d’éléments sous forme d’arbre : pour une clé (un enregistrement dans la base), vous avez un ensemble de clé/valeur qui lui correspond. Et pour chaque valeur pour pouvez avoir une simple donnée, ou une sous structure de clé/valeur.

La structure de clé/valeur peut changer a chaque entrée bien sur.

ElasticSearch organise les clés en Index; chaque Index aura sa propre configuration (TTL, façon d’indexer…).

ElasticSearch est de plus en plus populaire car il assez simple d’accès : les requêtes et les réponses se font en Json. Pas besoin d’API particulière, vous pouvez tout faire avec un simple curl comme indiqué dans la documentation.

Comme Apache Cassandra, ElasticSearch fonctionne sur une structure de nodes qui se synchronisent ensemble, avec un étalement possible des Indexes sur plusieurs nodes et sur plusieurs hiérarchies de datacenters. C’est taillé pour supporter de grosses opérations; GitHub s’en sert de moteur de recherche un cluster d’index de plusieurs To.

Ce qui est intéressant, c’est le triple emploi base de donnée document/décentralisation/indexation. Plus besoin d’une base SQL classique pour la plus part des usages de gestion de documents, de blog… ElasticSearch est suffisamment polyvalent pour tout faire (ou presque) rapidement.

C’est aussi une application libre, écrite en Java. Apache Lucene est le moteur d’indexation, l’une des référence dans le logiciel libre.

Vous trouverez beaucoup d’info sur le web, une petite communauté très active, notamment francophone, monte de plus en plus.