Note : 3 ; Aussi passionnant qu’un manuel de référence !
J’aime bien la série « in action » de chez Manning. On n’y trouve pas les œuvres du siècle, mais grâce à un processus et une discipline éditoriale très strictes, ils sont souvent très bons, plus rarement moyens et rarement dessous. Hélas, le présent ouvrage tombe dans cette dernière catégorie. Je voulais en savoir plus sur Elasticsearch, en comprendre le paradigme, l’architecture et les cas d’utilisation. Les 370 pages de l’ouvrage ont fait un travail médiocre à cet égard. Passé les 3, peut-être les 4 premiers chapitres, ce ne furent plus que litanies pénibles de fonctionnalités, des lignes de cUrl, avec ses Json en entrée et en sortie, le tout jusqu’au bord de l’étouffement. Faisons un (rapide tour de ces 11 chapitres.
Le texte est découpé en 2 parties. La première d’entre-elle contient la majeure partie du texte, c’est à dire 8 chapitres, soit près de 260 pages. Les 20 pages du 1er chapitre donnent une vue de haut niveau du produit, ainsi que des informations pour l’installation. Rien de bien concret, mais c’est agréable à lire. Le chapitre suivant consacre ses 30 pages à rentrer dans le dur : l’architecture et la gestion des clusters, mais aussi la gestion des documents, des index et des shards. Il s’agit probablement de mon chapitre préféré.
Presque 30 pages sont également dédiées au chapitre 3 : création, mise à jour et suppression des index. Si on commence quelque peu avec le « mode catalogue », on n’en souffre pas trop à cette étape, les explications restant claires, et puis on est au cœur du produit ! L’horizon s’assombrit plus avec le chapitre 4 et l’exploration des différentes recherches et des options. Beaucoup de requêtes et de Json, déjà…
Au menu du chapitre 5 : tokenisation, ngrams et tout ce qui constitue la chaine d’analyse d’Elasticsearch. Certes cet aspect permet de régler la qualité de la recherche, mais si le support des langues est intéressant, de nombreux aspects ont une utilité moins courante. J’aurais aimé un chapitre plus court, avec l’extra en annexe par exemple. Le chapitre 6 est lui consacré aux analyses et algorithmes de scoring. C’est l’occasion d’apprendre ce qu’est le TF-IDF et aussi les fonctions de boost. Bref on va assez loin au long de ces 30 pages, là aussi même si c’est peu utile, TF-IDF faisant correctement le travail la plupart du temps.
Les agrégations qui sont abordées au chapitre 7 sont certainement un sujet intéressant. Mais les auteurs parviennent à rendre ce chapitre bien indigeste. J’ai fini par parcourir certaines pages en diagonale ! On ne comprend même pas où les auteurs veulent en venir avec certains concepts ! J’attendais avec impatience le chapitre 8 traitant des relations entre les documents. Les 3 types de relation y sont effectivement décrits, mais que de lourdeurs. Il faut vraiment décoder les plus de 40 pages de ce chapitre pour comprendre l’intérêt de chacun des 3 modes. Cela manque de clarté et de concision.
La seconde partie du livre ne compte que 3 chapitres et près de 110 pages. A ce stade, j’ai déjà largement commencé à considérer le livre comme pénible. Hélas, il n’y a pas d’amélioration à l’horizon avec les 30 pages du chapitre 9 intitulé « scaling out ». Les illustrations ne fonctionnent pas et l’abord par le biais des APIs est juste inepte. Quand au chapitre 10 dédié aux performances, il aurait dû être passionnant, mais il échoue également, noyant le sujet sous 47 pages qui rendent le sujet insipide !
Les 28 pages du dernier chapitre mettent fin à nos souffrance avec l’administration d’Elasticsearch. Il ne nous épargne néanmoins rien sur le style. Seul la variété des sujets abordés, depuis le monitoring jusqu’au backup, rend cette dernière ligne droite juste un tout petit peu moins difficile.
Je n’ai pas eu l’impression de lire un livre, en tout cas un « in action » ici. C’était plutôt un manuel de référence, et tout aussi passionnant ! Plus de 2/3 du texte ne présente pas d’intérêt pour un premier contact et les sujets connexes mais importants comme l’intégration avec Elasticsearch sont complètement absente (à part une vague évocation dans un paragraphe, page 342). C’est donc une déception non dissimulée. Seul le fait que le texte détient une information fiable le sauve d’une grosse correction !
Référence complète : Elasticsearch in Action – Radu Gheorghe, Matthew Lee Hinman & Roy Russo – Manning 2015 – ISBN : 978 1 61729 162 3