Skip to content

9.5.0

Latest

Choose a tag to compare

@flobernd flobernd released this 04 Aug 19:20
c4e7039

What's Changed

Initial 9.5.x release.

Warning

This release regenerates the client against the Elasticsearch 9.5 specification and contains breaking changes. Please review the list below before upgrading.

  • Regenerate client against the Elasticsearch 9.5 specification by @flobernd in #8930 and #8944
    • New experimental client.Encryption.Reset endpoint, plus a ProjectEncryptionKey indicator on the health report
    • New experimental ES|QL data federation APIs: PutDataSource / GetDataSource / DeleteDataSource and PutDataset / GetDataset / DeleteDataset, with the supporting ESQLDataSource, ESQLDataset and DatasetMapping types
    • New experimental Inference region policy APIs: PutRegionPolicy / GetRegionPolicy / DeleteRegionPolicy
    • New _slice routing parameter (RouteSlice) across the search, get, index, delete, update and bulk APIs, as well as on the multi-search header and the reindex destination
    • FrequentItemSets aggregations now round-trip correctly. The generated variant used an empty discriminator where the converter expected frequent_item_sets, so the property always read back as null
    • Role-template queries in index privileges now deserialize to RoleTemplateQuery. Previously any object-shaped query was unconditionally read as a regular QueryDsl.Query
    • SpanGap and RoleMappingRule.Field variant accessors now return null instead of a default KeyValuePair when the union holds a different variant
    • New enum members: EmbeddingContentType.Audio / .Pdf / .Video, AnthropicTaskType.ChatCompletion, OpenAITaskType.Embedding, and the ClusterPrivilege.ManageReindex / .MonitorReindex values
    • Breaking (mapping): DocValues on 32 property types changes from bool? to Union<bool, DocValuesConfig>? to carry the new doc_values.multi_value setting. The parameterless DocValues() descriptor overload is gone, and reading the property into a bool? no longer compiles. SourceField.Compress and CompressThreshold are removed, and TextIndexPrefixes.MinChars / MaxChars become optional (int?), dropping the two-argument constructor
    • Breaking (ES|QL): the named-parameter arm of Params on EsqlQuery and AsyncQuery changes from KeyValuePair<string, ICollection<FieldValue>> to KeyValuePair<string, Union<ICollection<FieldValue>, ClassifiedNamedParameter>>, which affects every existing named-parameter call site. Both requests also gain a Settings body property
    • Breaking (inference): Rerank now accepts the expanded multimodal request format, so Input becomes Union<ICollection<string>, ICollection<RerankInputObject>>, Query becomes Union<string, RerankInputObject>, and the Input(params string[]) overload is removed. EmbeddingContentObject.Content becomes ICollection<EmbeddingContentObjectItem> and EmbeddingContentObjectContents is gone, OpenAIServiceSettings.ApiKey is now optional, and JinaAIServiceSettings.ElementType is renamed to EmbeddingType
    • Breaking (snapshot): SourceOnlyRepositorySettings is replaced by the ISourceOnlyRepositorySettings variant family with per-backend settings types, constructed through SourceOnlyRepositorySettingsFactory (ForAzure, ForGcs, ForReadOnlyUrl, ForS3, ForSharedFileSystem). SourceOnlyRepository.Settings now takes the interface, and its descriptor overloads are replaced by a factory callback
    • Breaking (security): RoleInfo.Indices changes from IndicesPrivileges to IndicesPrivilegesRead, and role definitions gain DataSourcePrivileges
    • Breaking (stats): GetStats.Time is renamed to GetTime, ShardStats.Indices becomes a dictionary of ShardStats, the DenseVectorOffHeapStats.TotalCenifSize typo is corrected to TotalCenivfSize, and newly required members change the positional constructors of IndexingStats, SearchStats, FlushStats, MappingStats and MachineLearning.Defaults
  • Make custom JSON converters safe for multi-segment readers by @flobernd in #8923
    • The hand-written date, duration, stringified and fractional numeric converters no longer fail when the Utf8JsonReader is constructed over a multi-segment ReadOnlySequence<byte>, which unblocks sequence-based deserializers such as a streaming reader over a PipeReader
    • The existing single-segment typed deserialization path is unchanged

New Contributors

Full Changelog: 9.4.2...9.5.0