版本亮点

编辑

这些是次要版本中重要的新功能和更改。每个版本还会将 Java API 客户端更新到最新的 API 规范。这包括 API 规范中新的 API 和现有 API 的错误修复。

有关详细更改(包括错误修复)的列表,请参阅 GitHub 项目版本说明

8.16 版本

编辑
  • ElasticsearchClient 现在是 Closeable。关闭客户端对象也会关闭底层传输 - #851
  • 添加了在反序列化错误的情况下使响应主体可用的选项 - #886

    • 虽然一直以来都可以将日志级别设置为 trace 并让客户端打印请求和响应的 JSON 主体,但由于打印的信息量很大,因此这通常不是最佳解决方案。
    • 要启用此功能

      RestClientOptions options = new RestClientOptions(RequestOptions.DEFAULT, true);
      ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper(), options);
      ElasticsearchClient esClientWithOptions = new ElasticsearchClient(transport);
    • 要从在反序列化错误的情况下抛出的 TransportException 中检索原始主体

      try{
          // some code that returns faulty json
      }
      catch (TransportException ex){
          try (RepeatableBodyResponse repeatableResponse = (RepeatableBodyResponse) ex.response()) {
              BinaryData body = repeatableResponse.body();
          }
      }

8.15 版本

编辑
  • 新的 连接器 API 可用
  • 修复了 BulkIngester 中的错误 - #830
  • 各种错误修复,其中包括 #844#847
  • 更改了使用泛型类型的查询的构建器,例如

    • 旧的 RangeQuery

      RangeQuery ra = RangeQuery.of(r -> r  // no distinction between various types (date, term, number)
          .field("day")
          .gte(JsonData.of("2024-06-20"))   // must use custom json for fields because there's no defined type
          .lte(JsonData.of("2024-07-05"))
          .boost(1.0F)
          .format("yyyy-MM-dd")
          .relation(RangeRelation.Contains));
    • 新的 RangeQuery

      RangeQuery ra = RangeQuery.of(r -> r
          .date(d -> d             // choose query type before
              .field("day")
              .gte("20-06-24")    // field now only accepts valid type for the specified query
              .lte("20-07-24")
              .boost(1.0F)
              .format("yyyy-MM-dd")
              .relation(RangeRelation.Contains)));

8.14 版本

编辑
  • 没有新功能。

8.13 版本

编辑
  • 添加 ES|QL 帮助程序 - #763
  • 添加了一个 SpringBoot 示例应用程序 - #737

8.12 版本

编辑
  • 没有新功能。

8.11 版本

编辑
  • 没有新功能。

8.10 版本

编辑
  • 添加仪器 API 和原生 OpenTelemetry 实现 - #588文档

8.9 版本

编辑
  • 重构 RestClientTransport 以允许使用其他 http 客户端库 - #584

8.8 版本

编辑
  • 在无法解析错误响应时抛出 TransportException - #579
  • 加快 URL 路径编码并删除对 httpclient 的依赖 - #576
  • 为 Jackson 添加缓冲前瞻和 JsonData 实现 - #489#567
  • 公开其他 BulkIngester 指标 - #513
  • 允许使用未解析的二进制数据进行摄取 - #508

8.7 版本

编辑
  • 添加 BulkIngester 帮助程序 - #474#513文档
  • 允许使用未解析的二进制数据进行摄取 - #508文档
  • 添加便利方法 BooleanQuery.hasClauses() - #525

8.6 版本

编辑
  • 除了 java.lang.Class 之外,还可以使用 java.lang.reflect.Type 来定义用于反序列化的应用程序类型 - #438
  • 为 Jackson 添加缓冲前瞻以加快联合反序列化速度 - #489
  • 缓存 JsonProvider.provider() 的结果 - #485

8.5 版本

编辑

8.4 版本

编辑

8.3 版本

编辑
  • 向所有值类添加 toString() 实现 - #269

8.2 版本

编辑

8.1 版本

编辑

8.0 版本

编辑
  • 将 JSON-P 实现从 Glassfish 更改为 Parsson - #63
  • 在列表中接受 null 值 - #68