Passez à la pratique avec Elasticsearch : explorez nos notebooks d’exemples, lancez un essai gratuit sur le cloud ou testez Elastic dès maintenant sur votre machine locale.
Introduction au client .NET et à NEST
Dans le monde .NET, l'intégration avec Elasticsearch est depuis longtemps facilitée par la bibliothèque NEST, qui sert d'interface robuste aux développeurs pour interagir avec les puissantes capacités de recherche et d'analyse d'Elasticsearch. NESTnée de la nécessité de disposer d'un client .NET natif pour Elasticsearch, a rapidement gagné en popularité auprès des développeurs en raison de la richesse de ses fonctionnalités et de ses capacités d'intégration transparentes.
Depuis près de 14 ans et seulement 8 mois après le premier commit d'Elasticsearch, NEST suit fidèlement les versions d'Elasticsearch.
Passage de NEST à Elastic.Clients.Elasticsearch
Avec l'évolution d'Elasticsearch, la maintenance de la base de code complexe de NEST est devenue de plus en plus difficile. Nous avons reconnu la nécessité d'une approche plus durable du développement des clients et nous avons entrepris de redéfinir le client .NET à partir de zéro. Il nous a fallu près d'un an pour publier une première version bêta et un an de plus pour nous rapprocher de la prise en charge de tous les points d'extrémité du serveur. L'une des décisions les plus difficiles à prendre a été de réduire la portée de la bibliothèque afin de donner la priorité à la maintenabilité.
Compte tenu de la taille de la surface de l'API Elasticsearch aujourd'hui, il n'est plus pratique de maintenir plus de 450 points d'extrémité et près de 3000 types (demandes, réponses, requêtes, agrégations, etc.) à la main. Pour garantir un alignement cohérent, précis et opportun entre les clients linguistiques et Elasticsearch, les clients 8.x et de nombreux types associés sont désormais automatiquement générés par le code à partir d'une spécification partagée. Il s'agit d'une solution courante pour maintenir l'alignement entre le client et le serveur parmi les SDK et les bibliothèques, tels que ceux pour Azure, AWS et Google Cloud Platform.
La spécification Elasticsearch a été créée il y a plus de 8 ans en exportant les mappages de types de NEST et grâce au travail acharné de l'équipe clients, nous pouvons maintenant utiliser la même spécification pour créer un nouveau client .NET (et des clients pour de nombreux autres langages tels que Java, Go, etc.)
Avec la sortie de la version 8.13, l'abandon de NEST a été officiellement annoncé. Avec la transition d'Elasticsearch vers Elastic.Clients.Elasticsearch, NEST sera progressivement supprimé et atteindra sa fin de vie à la fin de l'année. Les développeurs sont fortement encouragés à commencer les efforts de migration dès le début afin d'assurer une transition en douceur et d'atténuer les perturbations potentielles. L'adoption du site Elastic.Clients.Elasticsearch permet non seulement d'assurer la compatibilité avec les dernières fonctionnalités du serveur, mais aussi de protéger les applications contre les fonctionnalités obsolètes.
Elastic.Clients.Elasticsearch : aperçu des fonctionnalités et des changements
Le passage au client v8 Elastic.Clients.Elasticsearch permet d'accéder à toutes les nouvelles fonctionnalités d'Elasticsearch 8 et apporte également de nombreuses modernisations à la bibliothèque elle-même, mais implique également une réduction des fonctionnalités de commodité par rapport à son prédécesseur. Parmi les nouvelles fonctionnalités de base, citons le langage de requête ES|QL, des capacités modernes d'apprentissage automatique (ML) et des diagnostics améliorés sous la forme d'activités compatibles avec OpenTelemetry. À partir de la version 8.13, Elastic.Clients.Elasticsearch prend en charge presque toutes les fonctionnalités serveur d'Elasticsearch 8.
Une rupture importante, par exemple, est liée aux agrégations. Dans NEST, l'utilisation de l'API fluide se présente comme suit :
tandis que le client v8 requiert la syntaxe suivante :
Migration de NEST v7 vers le client .NET v8
Un guide de migration complet est disponible ici : Guide de migration : De NEST v7 à .NET Client v8.

