Elasticsearch .NET 客户端的演变:从 NEST 到 Elastic.Clients.Elasticsearch

了解 Elasticsearch .NET 客户端的演变以及从 NEST 到 Elastic.Clients.Elasticsearch 的过渡。

亲身体验 Elasticsearch:深入了解我们的示例笔记本,开始免费云服务试用,或立即在您的本地计算机上试用 Elastic。

.NET 客户端和 NEST 简介

在.NET世界中,与Elasticsearch的集成长期以来一直是通过NEST 库来实现的,该库是开发人员与Elasticsearch强大的搜索和分析功能进行交互的强大接口。NESTElasticsearch 的本地 .NET 客户端的需求而诞生的,因其丰富的功能集和无缝集成能力而迅速受到开发人员的青睐。

14 年来,在Elasticsearch 首次提交后仅 8 个月,NEST 就一直忠实地跟踪 Elasticsearch 的发布情况。

从 NEST 过渡到 Elastic.Clients.Elasticsearch

随着 Elasticsearch 的发展,维护NEST 的复杂代码库变得越来越困难。我们认识到需要一种更可持续的客户端开发方法,并开始了从头开始重新设计 .NET 客户端的旅程。我们花了将近一年的时间才发布了第一个测试版,又花了一年的时间才接近支持所有服务器端点。最困难的决定之一是缩小图书馆的范围,以便优先考虑可维护性。

鉴于目前 Elasticsearch API 的规模,手动维护 450 多个端点和近 3000 种类型(请求、响应、查询、聚合等)已不再现实。为了确保语言客户端和 Elasticsearch 之间一致、准确和及时的对齐,8.x 客户端和许多相关类型现在都是根据共享规范自动生成代码的。这是在 SDK 和库(如 Azure、AWS 和 Google 云平台的 SDK 和库)中保持客户端和服务器之间一致性的常见解决方案。

Elasticsearch 规范是 8 年前通过从NEST 导出类型映射创建的,通过客户团队的辛勤工作,我们现在可以使用相同的规范创建新的 .NET 客户端(以及 Java、Go 等其他多种语言的客户端)。

随着 8.13 版的发布,NEST 正式宣布弃用。随着 Elasticsearch 过渡到Elastic.Clients.ElasticsearchNEST 将逐步淘汰,并在今年年底达到报废期。我们强烈建议开发人员尽早开始迁移工作,以确保平稳过渡并减少任何潜在的中断。采用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

其他资源

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用