Elasticsearch .NET クライアントの進化: NEST から Elastic.Clients.Elasticsearch へ

Elasticsearch .NET クライアントの進化と、NEST から Elastic.Clients.Elasticsearch への移行について学習します。

Elasticsearch を実際に体験してみましょう。サンプルノートブックを詳しく調べたり、Elastic の無料クラウドトライアルを開始したり、今すぐローカルマシンで Elastic を試したりできます。

.NET クライアントと NEST の紹介

.NET の世界では、Elasticsearch との統合は長い間NESTライブラリによって促進されてきました。このライブラリは、開発者が Elasticsearch の強力な検索機能や分析機能と対話するための堅牢なインターフェースとして機能します。NEST 、Elasticsearch 用のネイティブ .NET クライアントの必要性から生まれ、豊富な機能セットとシームレスな統合機能により、開発者の間で急速に人気を博しました。

Elasticsearch の最初のコミット から約 14 年 とわずか 8 か月間、NEST は Elasticsearch のリリースを忠実に追跡してきました。

NEST から Elastic.Clients.Elasticsearch への移行

Elasticsearch が進化するにつれて、 NESTの複雑なコードベースの維持がますます困難になりました。私たちは、クライアント開発に対してより持続可能なアプローチが必要であることを認識し、.NET クライアントを根本から再設計する取り組みを始めました。最初のベータ版をリリースするのにほぼ 1 年かかり、すべてのサーバー エンドポイントのサポートに近づくまでにさらに 1 年かかりました。最も難しい決断の 1 つは、保守性を優先するためにライブラリの範囲を縮小することでした。

現在の Elasticsearch API サーフェスのサイズを考えると、450 を超えるエンドポイントと 3000 近くのタイプ (リクエスト、レスポンス、クエリ、集計など) を手動で管理することはもはや現実的ではありません。言語クライアントと Elasticsearch 間の一貫性、正確性、およびタイムリーな調整を保証するために、8.x クライアントと多くの関連タイプは、共有仕様から自動的にコード生成されるようになりました。これは、Azure、AWS、Google Cloud Platform などの SDK とライブラリ間でクライアントとサーバーの整合性を維持するための一般的なソリューションです。

Elasticsearch 仕様は、 NESTから型マッピングをエクスポートすることによって 8 年以上前に作成されましたが、クライアント チームの懸命な努力により、同じ仕様を使用して新しい .NET クライアント (および Java、Go などの複数の他の言語のクライアント) を作成できるようになりました。

バージョン 8.13 のリリースにより、 NESTの廃止が正式に発表されました。Elasticsearch がElastic.Clients.Elasticsearchに移行するにつれて、 NEST段階的に廃止され、年末にサポートが終了します。スムーズな移行を実現し、潜在的な中断を最小限に抑えるために、開発者は移行作業を早期に開始することを強くお勧めします。Elastic.Clients.Elasticsearchを採用すると、最新のサーバー機能との互換性が確保されるだけでなく、廃止される機能に対してもアプリケーションの将来性が保証されます。

Elastic.Clients.Elasticsearch: 機能と変更点の概要

v8 クライアントElastic.Clients.Elasticsearchに切り替えると、Elasticsearch 8 のすべての新機能にアクセスできるようになり、ライブラリ自体も大幅に最新化されますが、以前のバージョンに比べて便利な機能が少なくなります。新しいコア機能には、クエリ言語ES|QL 、最新の機械学習 (ML) 機能、OpenTelemetry 互換アクティビティの形式での改善された診断機能などがあります。バージョン 8.13 以降、 Elastic.Clients.Elasticsearch Elasticsearch 8 のほぼすべてのサーバー機能をサポートします。

たとえば、重要な重大な変更は集計に関連しています。NESTでは、Fluent API の使用は次のようになります。

一方、v8 クライアントでは次の構文が必要です。

NEST v7 から .NET クライアント v8 への移行

包括的な移行ガイドは、こちらでご覧いただけます:移行ガイド: NEST v7 から .NET Client v8 へ

参考資料

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう