Die Entwicklung des Elasticsearch .NET-Clients: Von NEST zu Elastic.Clients.Elasticsearch

Erfahren Sie mehr über die Entwicklung des Elasticsearch .NET-Clients und den Übergang von NEST zu Elastic.Clients.Elasticsearch.

Testen Sie Elasticsearch: Sehen Sie sich unsere Beispiel-Notebooks an, starten Sie eine kostenlose Cloud-Testversion oder testen Sie Elastic jetzt auf Ihrem lokalem Gerät.

Einführung in den .NET-Client und NEST

In der .NET-Welt wird die Integration mit Elasticsearch seit langem durch die NEST -Bibliothek erleichtert, die als robuste Schnittstelle für Entwickler dient, um mit den leistungsstarken Such- und Analysefunktionen von Elasticsearch zu interagieren. NEST, entstanden aus dem Bedürfnis nach einem nativen .NET-Client für Elasticsearch, erfreute sich aufgrund seines umfangreichen Funktionsumfangs und seiner nahtlosen Integrationsmöglichkeiten schnell großer Beliebtheit bei Entwicklern.

Seit fast 14 Jahren und nur 8 Monaten nach dem ersten Commit von Elasticsearch verfolgt NEST die Elasticsearch-Releases zuverlässig.

Umstellung von NEST auf Elastic.Clients.Elasticsearch

Mit der Weiterentwicklung von Elasticsearch wurde die Wartung der komplexen Codebasis von NEST zunehmend schwieriger. Wir erkannten die Notwendigkeit eines nachhaltigeren Ansatzes für die Cliententwicklung und machten uns auf den Weg, den .NET-Client von Grund auf neu zu gestalten. Es dauerte fast ein Jahr, bis wir eine erste Beta-Version veröffentlichen konnten, und ein weiteres Jahr, bis wir nahezu jeden einzelnen Server-Endpunkt unterstützen konnten. Eine der schwierigsten Entscheidungen war, den Umfang der Bibliothek zu reduzieren, um stattdessen die Wartbarkeit zu priorisieren.

Angesichts des Umfangs der Elasticsearch-API-Oberfläche ist es heute nicht mehr praktikabel, über 450 Endpunkte und fast 3000 Typen (Anfragen, Antworten, Abfragen, Aggregationen usw.) manuell zu pflegen. Um eine konsistente, genaue und zeitnahe Abstimmung zwischen Sprachclients und Elasticsearch zu gewährleisten, werden die 8.x-Clients und viele der zugehörigen Typen jetzt automatisch aus einer gemeinsamen Spezifikation generiert. Dies ist eine gängige Lösung, um die Abstimmung zwischen Client und Server bei SDKs und Bibliotheken wie denen für Azure, AWS und die Google Cloud Platform aufrechtzuerhalten.

Die Elasticsearch-Spezifikation wurde vor über 8 Jahren durch den Export der Typzuordnungen aus NEST erstellt, und dank der harten Arbeit des Client-Teams können wir nun dieselbe Spezifikation verwenden, um einen neuen .NET-Client (und Clients für zahlreiche andere Sprachen wie Java, Go usw.) zu erstellen.

Mit der Veröffentlichung von Version 8.13 wurde die Abschaffung von NEST offiziell bekannt gegeben. Mit dem Übergang von Elasticsearch zu Elastic.Clients.Elasticsearch wird NEST schrittweise auslaufen und zum Jahresende endgültig eingestellt. Entwickler werden dringend gebeten, frühzeitig mit den Migrationsbemühungen zu beginnen, um einen reibungslosen Übergang zu gewährleisten und mögliche Störungen zu minimieren. Die Verwendung Elastic.Clients.Elasticsearch gewährleistet nicht nur die Kompatibilität mit den neuesten Serverfunktionen, sondern schützt Anwendungen auch vor veralteten Funktionen für die Zukunft.

Elastic.Clients.Elasticsearch: Funktionen und Änderungen im Überblick

Durch den Wechsel zum v8-Client Elastic.Clients.Elasticsearch erhalten Sie Zugriff auf alle neuen Funktionen von Elasticsearch 8 und profitieren zudem von zahlreichen Modernisierungen der Bibliothek selbst. Allerdings bedeutet dies auch eine Reduzierung der Komfortfunktionen im Vergleich zum Vorgänger. Zu den neuen Kernfunktionen gehören die Abfragesprache ES|QL, moderne Machine-Learning-Funktionen (ML) und verbesserte Diagnosemöglichkeiten in Form von OpenTelemetry-kompatiblen Aktivitäten. Ab Version 8.13 unterstützt Elastic.Clients.Elasticsearch nahezu alle Serverfunktionen von Elasticsearch 8.

Eine wichtige grundlegende Änderung betrifft beispielsweise Aggregationen. In NEST sieht die Verwendung der Fluent API folgendermaßen aus:

Der V8-Client erfordert hingegen folgende Syntax:

Migration von NEST v7 zu .NET-Client v8

Ein ausführlicher Migrationsleitfaden ist hier verfügbar: Migrationsleitfaden: Von NEST v7 zu .NET Client v8.

Weitere Ressourcen

Zugehörige Inhalte

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus