Skip to content

Bump Elastic.Clients.Elasticsearch from 8.18.0 to 9.5.0 - #29

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/ECommerce.Infrastructure/Elastic.Clients.Elasticsearch-9.5.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/nuget/src/ECommerce.Infrastructure/Elastic.Clients.Elasticsearch-9.5.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 21, 2026

Copy link
Copy Markdown
Contributor

Updated Elastic.Clients.Elasticsearch from 8.18.0 to 9.5.0.

Release notes

Sourced from Elastic.Clients.Elasticsearch's releases.

9.5.0

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 [9.5] Add request-converter code generation (#8612) elastic/elasticsearch-net#8930 and [9.5] Regenerate client elastic/elasticsearch-net#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 Make custom JSON converters safe for multi-segment readers elastic/elasticsearch-net#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: elastic/elasticsearch-net@9.4.2...9.5.0

9.4.2

What's Changed

  • Add plugin-defined (non-exhaustive) variant registry by @​flobernd in Add plugin-defined (non-exhaustive) variant registry elastic/elasticsearch-net#8911
    • Unknown discriminators on variant union families (properties, analyzers, char filters, token filters, tokenizers, repositories, similarity settings, aggregations, queries, etc.) now deserialize into an Unknown* carrier and re-serialize losslessly — no data is dropped for plugin-defined or future variants the client doesn't model
    • Opt into strong typing by registering a CLR type for a discriminator: settings.Variants.Register<IProperty, MyPluginProperty>("my_plugin"); registrations are scoped per client instance and AOT-safe — see the Plugin-defined variant types documentation for details
  • Regenerate client by @​flobernd in [9.4] Regenerate client elastic/elasticsearch-net#8908 and [9.4] Regenerate client elastic/elasticsearch-net#8917
    • Generated Unknown* carrier types for all variant families (properties, analyzers, char filters, token filters, tokenizers, repositories, similarity settings, aggregations, queries, suggesters, rescorers) to support the non-exhaustive variant registry
    • Improved XML documentation coverage across generated client methods, request/response types, and type members that previously had no IntelliSense descriptions

Full Changelog: elastic/elasticsearch-net@9.4.1...9.4.2

9.4.1

What's Changed

  • Regenerate client by @​flobernd in [9.4] Regenerate client elastic/elasticsearch-net#8899 and [9.4] Regenerate client elastic/elasticsearch-net#8907
    • Fixes (de-)serialization of unions with three or more variants — previously, hand-rolled union converters could fail to select the correct variant
    • Search response shape fix in InnerHits: the Fields property is split into Field (single-field selector using Fields) and a new Fields collection of FieldAndFormat — existing usages of InnerHits.Fields = … may need to be retargeted to Field
    • DataStreamLifecycle gains EffectiveRetention and RetentionDeterminedBy; new GlobalRetention and RetentionSource types; GetDataLifecycleResponse now exposes GlobalRetention
    • Reindex rethrottle response now models parent task progress via the new ParentReindexStatus type
    • Inference and _mvt content-type alignment: chat_completion_unified / stream_completion send Content-Type: application/json; _mvt uses the versioned application/vnd.elasticsearch+vnd.mapbox-vector-tile Accept header

Full Changelog: elastic/elasticsearch-net@9.4.0...9.4.1

9.4.0

What's Changed

Initial 9.4.x release.

Full Changelog: elastic/elasticsearch-net@9.3.7...9.4.0

9.3.7

What's Changed

  • Regenerate client by @​flobernd in [9.3] Regenerate client elastic/elasticsearch-net#8898
    • Set explicit ContentType: application/json for ChatCompletionUnified and StreamCompletion streaming inference requests
    • Switch SearchMvt Accept header to application/vnd.elasticsearch+vnd.mapbox-vector-tile (Elasticsearch product-flavored content-type)
    • Bump Elastic.Transport to 0.17.1
    • Document default max_page_search_size values for pivot (500) and latest (5000) transforms

Full Changelog: elastic/elasticsearch-net@9.3.6...9.3.7

9.3.6

What's Changed

Full Changelog: elastic/elasticsearch-net@9.3.5...9.3.6

9.3.5

What's Changed

Full Changelog: elastic/elasticsearch-net@9.3.4...9.3.5

9.3.4

What's Changed

Full Changelog: elastic/elasticsearch-net@9.3.3...9.3.4

9.3.3

What's Changed

Full Changelog: elastic/elasticsearch-net@9.3.2...9.3.3

9.3.2

What's Changed

New Contributors

Full Changelog: elastic/elasticsearch-net@9.3.1...9.3.2

9.3.1

What's Changed

Full Changelog: elastic/elasticsearch-net@9.3.0...9.3.1

9.3.0

What's Changed

Initial 9.3.x release.

Full Changelog: elastic/elasticsearch-net@9.2.3...9.3.0

9.2.3

What's Changed

New Contributors

Full Changelog: elastic/elasticsearch-net@9.2.2...9.2.3

9.2.2

What's Changed

Full Changelog: elastic/elasticsearch-net@9.2.1...9.2.2

9.2.1

What's Changed

Full Changelog: elastic/elasticsearch-net@9.2.0...9.2.1

9.2.0

What's Changed

Initial 9.2 release.

Full Changelog: elastic/elasticsearch-net@9.1.12...9.2.0

9.1.12

What's Changed

Full Changelog: elastic/elasticsearch-net@9.1.11...9.1.12

9.1.11

What's Changed

Full Changelog: elastic/elasticsearch-net@9.1.10...9.1.11

9.1.10

What's Changed

Full Changelog: elastic/elasticsearch-net@9.1.9...9.1.10

9.1.9

What's Changed

Full Changelog: elastic/elasticsearch-net@9.1.8...9.1.9

9.1.8

What's Changed

Breaking Changes

The type of the Sources property has been changed from ICollection<IDictionary<string, CompositeAggregationSource>> to ICollection<KeyValuePair<string, CompositeAggregationSource>>. This corresponds to the Elasticsearch standard for modeling ordered dictionaries in the REST API.

CompositeAggregationSource is now also a container (similar to Aggregation, Query, etc.). This change improves usability due to specialized code generation. For example, implicit conversion operators from all existing variants (CompositeTermsAggregation, CompositeHistogramAggregation, etc.) to CompositeAggregationSource are now generated.

As a consequence, the object initializer syntax changes as follows:

// 9.1.7 and below

var request = new SearchRequest
{
    Aggregations = new Dictionary<string, Aggregation>
    {
        { "my_composite", new CompositeAggregation
        {
            Sources =
            [
                new Dictionary<string, CompositeAggregationSource>
                {
                    { "my_terms", new CompositeAggregationSource
                    {
                        Terms = new CompositeTermsAggregation
                        {
                            // ...
                        }
                    }}
                },
                new Dictionary<string, CompositeAggregationSource>
                {
                    { "my_histo", new CompositeAggregationSource
                    {
                        Histogram = new CompositeHistogramAggregation(0.5)
                        {
                            // ...
                        }
                    }}
                }
            ]
        }}
    }
};

 ... (truncated)

## 9.1.7

## What's Changed

* BulkResponseItemConverter: Continue after skipping unmapped json member by @​MindaugasButkus in https://github.com/elastic/elasticsearch-net/pull/8698

## New Contributors

* @​MindaugasButkus made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8698

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.6...9.1.7

## 9.1.6

## What's Changed

* Fix deserialization of `Context` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8688

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.5...9.1.6

## 9.1.5

## What's Changed

* Introduce `RequestResponseConverter<T>` and make all non-generated `JsonConverter`s public by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8669
  * Greatly simplifies use of `Elastic.Clients.Elasticsearch` types in documents (e.g. for percolation; see #​8003)
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8679
* Update `Elastic.Transport` to `0.10.1` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8681
  * Fixes a race condition (see #​8671)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.4...9.1.5

## 9.1.4

## What's Changed

* More AOT annotations  by @​Mpdreamz in https://github.com/elastic/elasticsearch-net/pull/8661
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8668
  * Fixes deserialization of `PercentilesItem` (https://github.com/elastic/elasticsearch-net/issues/8570)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.3...9.1.4

## 9.1.3

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8658
  * Fixes several AOT related warnings.
* Add AOT example by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8569

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.2...9.1.3

## 9.1.2

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8656
  * Use `SourceSerializer` for `object` types (https://github.com/elastic/elasticsearch-net/issues/8648)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.1...9.1.2

## 9.1.1

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8644 and https://github.com/elastic/elasticsearch-net/pull/8645
  * Fixes deserialization of `PercentilesAggregate` and improves usability (https://github.com/elastic/elasticsearch-net/issues/8570)
  * Fixes serialization of `TermsvectorRequest.fields` (https://github.com/elastic/elasticsearch-net/issues/8641)
* Address some of the AOT compiler errors in .NET 9 by @​Mpdreamz in https://github.com/elastic/elasticsearch-net/pull/8649

## Breaking Changes

The type of the `Values` property for the following classes got changed from the `Percentiles` union to a simple `PercentilesItem` collection:

- `HdrPercentilesAggregate`
- `HdrPercentileRanksAggregate`
- `TDigestPercentilesAggregate`
- `TDigestPercentileRanksAggregate`
- `PercentilesBucketAggregate`

The `Percentiles` union type got removed as it's no longer used.

---

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.1.0...9.1.1

## 9.1.0

## What's Changed

* Release 9.1.0

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.8...9.1.0

## 9.0.8

## What's Changed

* Use Count instead of Count() by @​gpetrou in https://github.com/elastic/elasticsearch-net/pull/8604
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8638

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.7...9.0.8

## 9.0.7

## What's Changed

* Increase `MaxDepth` to 512 for internal request/response type serializer (#​8573) by @​github-actions in https://github.com/elastic/elasticsearch-net/pull/8575
* Support (de-)serialization of nullable value-types in AOT context by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8584
* Add deserialization support for `GeoBounds` and `GeoLocation` (#​8586) by @​github-actions in https://github.com/elastic/elasticsearch-net/pull/8588
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8602

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.6...9.0.7

## 9.0.6

## What's Changed

* Fix `IndexName` ambiguity by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8556
* Preserve `BucketsPath` alias by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8561
* Regenerate client

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.5...9.0.6

## 9.0.5

## What's Changed

* Update `Elastic.Transport` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8549
  * Fixes an issue that caused certain URL parameters to get serialized with incorrect casing

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.4...9.0.5

## 9.0.4

## What's Changed

* Add (experimental) native AOT support by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8530
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8532

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.3...9.0.4

## 9.0.3

## What's Changed

* Fix `IndexName` inference (and regenerate client) by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8519

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.2...9.0.3

## 9.0.2

## What's Changed

* Fix `RequestConfiguration` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8514
* Fix NPE when deserializing invalid `SearchResponse` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8516

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.1...9.0.2

## 9.0.1

## What's Changed

* Fix NPE in `GetAliasResponse` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8505
* Fix serialization of `InnerHits.Fields` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8505

## New Contributors

* @​bmorelli25 made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8492
* @​sergey-tihon made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8504

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.0...9.0.1

## 9.0.0

## What's Changed

See [release notes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet#elasticsearch-net-client-900-release-notes) and [breaking changes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet/breaking-changes#elasticsearch-net-client-900-breaking-changes).

---

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.17.2...9.0.0

## 9.0.0-preview.1

## What's Changed

### 1.1 Request Method/API Changes

#### 1.1.1 Synchronous Request APIs

Synchronous request APIs are no longer marked as `obsolete`. We received some feedback about this deprecation and decided to revert it.

#### 1.1.2 Separate Type Arguments for Request/Response

It is now possible to specify separate type arguments for requests/responses when executing request methods:

```csharp
var response = await client.SearchAsync<Person, JsonObject>(x => x
    .Query(x => x.Term(x => x.Field(x => x.FirstName).Value("Florian")))
);

var documents = response.Documents; // IReadOnlyCollection<JsonObject>

The regular APIs with merged type arguments are still available.

1.2 Improved Fluent API

The enhanced fluent API generation is likely the most notable change in the 9.0 client.

This section describes the main syntax constructs generated based on the type of the property in the corresponding object.

1.2.1 ICollection<E>

Note: This syntax already existed in 8.x.

new SearchRequestDescriptor<Person>()
    .Query(q => q
        .Bool(b => b
            .Must(new Query())                           // Scalar: Single element.
            .Must(new Query(), new Query())              // Scalar: Multiple elements (params).
            .Must(m => m.MatchAll())                     // Fluent: Single element.
            .Must(m => m.MatchAll(), m => m.MatchNone()) // Fluent: Multiple elements (params).
        )
    );

1.2.2 IDictionary<K, V>

The 9.0 client introduces full fluent API support for dictionary types.

new SearchRequestDescriptor<Person>()
 ... (truncated)

## 8.19.24

## What's Changed

> [!WARNING]
> This release regenerates the client against the latest specification and contains a few breaking changes. Please review the list below before upgrading.

* Make custom JSON converters safe for multi-segment readers by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/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
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8922 and https://github.com/elastic/elasticsearch-net/pull/8945
  * `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 the union had no discriminator between the two object arms, so any object-shaped query was unconditionally read as a regular `QueryDsl.Query`
  * `SpanQuery.SpanGap` now returns `null` instead of a default `KeyValuePair` when the union holds a different variant, so `SpanGap is not null` is no longer always true
  * New `basic` query parameter on `GetTransformStats`, which returns a cheaper subset of statistics by skipping `operations_behind`, `changes_last_detected_at`, `last_search_time` and the checkpoint timestamps
  * New settings and response fields: `IndexSettings.Unassigned` exposing `index.unassigned.node_left.delayed_timeout`, `OnScriptError` on runtime field definitions, and `Allocations` shard-allocation statistics on node stats
  * **Breaking**: `TextIndexPrefixes.MinChars` and `MaxChars` become optional (`int?`) and the two-argument `TextIndexPrefixes(int, int)` constructor is removed. This also fixes reading responses that omit either value, which previously failed the required-member check
  * **Breaking**: `JinaAIServiceSettings.ElementType` is renamed to `EmbeddingType`, matching the `embedding_type` wire name
  * **Breaking**: `NodeInfoDiscover.SeedProviders` changes from `IReadOnlyCollection<string>` to `ICollection<string>`, and a scalar `seed_providers` value from the node info API now deserializes instead of throwing

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.23...8.19.24


## 8.19.23

## What's Changed

* Add plugin-defined (non-exhaustive) variant registry by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8911
  * Unknown discriminators on variant union families (properties, analyzers, char filters, token filters, tokenizers, repositories, similarity settings, aggregations, queries, etc.) now deserialize into an `Unknown*` carrier and re-serialize losslessly — no data is dropped for plugin-defined or future variants the client doesn't model
  * Opt into strong typing by registering a CLR type for a discriminator: `settings.Variants.Register<IProperty, MyPluginProperty>("my_plugin")`; registrations are scoped per client instance and AOT-safesee the [Plugin-defined variant types](https://www.elastic.co/docs/reference/elasticsearch/clients/dotnet/plugin-defined-variants) documentation for details
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8910 and https://github.com/elastic/elasticsearch-net/pull/8916
  * Generated `Unknown*` carrier types for all variant families (properties, analyzers, char filters, token filters, tokenizers, repositories, similarity settings, aggregations, queries, suggesters, rescorers) to support the non-exhaustive variant registry
  * Improved XML documentation coverage across generated client methods, request/response types, and type members that previously had no IntelliSense descriptions

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.22...8.19.23


## 8.19.22

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8897 and https://github.com/elastic/elasticsearch-net/pull/8906
  * Fixes (de-)serialization of unions with three or more variants — previously, hand-rolled union converters could fail to select the correct variant
  * `DataStreamLifecycle` gains `EffectiveRetention` and `RetentionDeterminedBy`; new `GlobalRetention` and `RetentionSource` types; `GetDataLifecycleResponse` now exposes `GlobalRetention`
  * Inference and `_mvt` content-type alignment: `chat_completion_unified` / `stream_completion` send `Content-Type: application/json`; `_mvt` uses the versioned `application/vnd.elasticsearch+vnd.mapbox-vector-tile` Accept header


**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.21...8.19.22


## 8.19.21

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8897
  * Set explicit `ContentType: application/json` for `ChatCompletionUnified` and `StreamCompletion` streaming inference requests
  * Switch `SearchMvt` `Accept` header to `application/vnd.elasticsearch+vnd.mapbox-vector-tile` (Elasticsearch product-flavored content-type)
  * Bump `Elastic.Transport` to 0.17.1
  * Document default `max_page_search_size` values for `pivot` (500) and `latest` (5000) transforms

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.20...8.19.21


## 8.19.20

## What's Changed

* Remove obsolete ElasticsearchClientProductRegistration overrides by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8891
  * Fixes https://github.com/elastic/elasticsearch-net/issues/8890

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.19...8.19.20

## 8.19.19

## What's Changed

* Hand-craft IndexSettingsTimeSeriesConverter to handle out-of-range dates by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8873
* Fix DefaultMappingFor not consuming `IdPropertyName` and `DisableIdInference` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8877
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8883
  * Fixes `FieldType` enum doesnt have `Wildcard` value" (#​8826)
  * Fixes `SearchMvtAsync` throws `TransportException` on successful `HTTP 200 _mvt` responses with valid binary tile payload (#​8867)
* Align LINQ-to-ES|QL integration with `Elastic.Esql` 0.11.0 by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8886

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.18...8.19.19

## 8.19.18

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8861
* Add LINQ to ESQL provider by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8858
  * Documentation: https://www.elastic.co/docs/reference/elasticsearch/clients/dotnet/linq-to-esql

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.17...8.19.18

## 8.19.17

## What's Changed

* Fix regression involving `BulkRequest` per-request index by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8855

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.16...8.19.17

## 8.19.16

## What's Changed

* Fix Query operators to reflect nullable parameters by @​amitkanfer in https://github.com/elastic/elasticsearch-net/pull/8836
* Fix `BulkRequest` index inference by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8843
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8813
* Update `Elastic.Transport` to `0.15.1` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8847
  * Fixes an issue with cluster node sniffing

## New Contributors

* @​theletterf made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8828
* @​amitkanfer made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8836

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.15...8.19.16

## 8.19.15

## What's Changed

* Update `Elastic.Transport` to `0.15.0` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8830

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.14...8.19.15

## 8.19.14

## What's Changed

* Add `net10.0` TFM by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8789
* Add custom vector data converters for high performance ingest scenarios by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8785
* Use UTF-8 literals in `JsonEncodedText.Encode`. by @​teo-tsirpanis in https://github.com/elastic/elasticsearch-net/pull/8792
* Add `Experimental` attribute to `FilterPath` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8802
* Use trim-safe code in `LazyJsonConverter`. by @​teo-tsirpanis in https://github.com/elastic/elasticsearch-net/pull/8793
* Allow use of custom `ITransport<IElasticsearchClientSettings>` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8816

## New Contributors

* @​teo-tsirpanis made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8792

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.13...8.19.14

## 8.19.13

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8777
  * Fixes some incorrectly generated endpoints like e.g. `Security.PutUser` (https://github.com/elastic/elasticsearch-net/issues/8774)
* Avoid `HasFlag` in hot-path when targeting `netfx` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8779

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.2.1...9.2.2

## 8.19.12

## What's Changed

* Fix deserialization of `SqlRow` values by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8767
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8770

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.11...8.19.12

## 8.19.11

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8759

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.10...8.19.11

## 8.19.10

## What's Changed

* Allow modification of `RequestConfiguration` for `BulkRequest` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8741
* Fix floating point serialization for NETFRAMEWORK builds by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8742
* Add implicit conversion operators for handcrafted descriptors by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8743
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8755
  * Allow keyed buckets for `FiltersAggregation` and `ApiFiltersAggregation`

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.9...8.19.10

## 8.19.9

## What's Changed

* Allow `Esql.QueryAsObjects()` to work with nested types by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8729

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.8...8.19.9

## 8.19.8

## What's Changed

* Switch to custom `SafeSkip()` method that works with partial JSON blocks by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8720
  * Improves compatibility in certain streaming scenarios

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.7...8.19.8

## 8.19.7

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8706
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8710
  * Improves usability of `CompositeAggregation` (see #​8704)
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8715
  * Fixes (de-)serialization of `TermQuery` (see #​8713)

## Breaking Changes

See https://github.com/elastic/elasticsearch-net/releases/tag/9.1.8.

---

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.6...8.19.7

## 8.19.6

## What's Changed

* BulkResponseItemConverter: Continue after skipping unmapped json member by @​MindaugasButkus in https://github.com/elastic/elasticsearch-net/pull/8698

## New Contributors

* @​MindaugasButkus made their first contribution in https://github.com/elastic/elasticsearch-net/pull/8698

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.5...8.19.6

## 8.19.5

## What's Changed

* Fix deserialization of `Context` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8688

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.4...8.19.5

## 8.19.4

## What's Changed

* Introduce `RequestResponseConverter<T>` and make all non-generated `JsonConverter`s public by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8669
  * Greatly simplifies use of `Elastic.Clients.Elasticsearch` types in documents (e.g. for percolation; see #​8003)
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8679
* Update `Elastic.Transport` to `0.10.1` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8681
  * Fixes a race condition (see #​8671)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.3...8.19.4

## 8.19.3

## What's Changed

* More AOT annotations  by @​Mpdreamz in https://github.com/elastic/elasticsearch-net/pull/8661
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8668
  * Fixes deserialization of `PercentilesItem` (https://github.com/elastic/elasticsearch-net/issues/8570)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.2...8.19.3

## 8.19.2

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8656
  * Use `SourceSerializer` for `object` types (https://github.com/elastic/elasticsearch-net/issues/8648)

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.1...8.19.2

## 8.19.1

## What's Changed

* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8644 and https://github.com/elastic/elasticsearch-net/pull/8645
  * Fixes deserialization of `PercentilesAggregate` and improves usability (https://github.com/elastic/elasticsearch-net/issues/8570)
  * Fixes serialization of `TermsvectorRequest.fields` (https://github.com/elastic/elasticsearch-net/issues/8641)
* Address some of the AOT compiler errors in .NET 9 by @​Mpdreamz in https://github.com/elastic/elasticsearch-net/pull/8649

## Breaking Changes

The type of the `Values` property for the following classes got changed from the `Percentiles` union to a simple `PercentilesItem` collection:

- `HdrPercentilesAggregate`
- `HdrPercentileRanksAggregate`
- `TDigestPercentilesAggregate`
- `TDigestPercentileRanksAggregate`
- `PercentilesBucketAggregate`

The `Percentiles` union type got removed as it's no longer used.

---

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.0...8.19.1

## 8.19.0

## What's Changed

* Release 8.19.0.

This release backports **all** improvements of the 9.x client to the 8.x major version of the client.

> [!WARNING]
> Please note that some of the changes in this release are breaking!

For a complete list of improvements in this release, have a look at the 9.0.0 [release notes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet#elasticsearch-net-client-900-release-notes) and [breaking changes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet/breaking-changes#elasticsearch-net-client-900-breaking-changes) to learn about all breaking changes.

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.0-preview.4...8.19.0

## 8.19.0-preview.4

## What's Changed

* Increase `MaxDepth` to 512 for internal request/response type serializer (#​8573) by @​github-actions in https://github.com/elastic/elasticsearch-net/pull/8574
* Support (de-)serialization of nullable value-types in AOT context by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8585
* Add deserialization support for `GeoBounds` and `GeoLocation` (#​8586) by @​github-actions in https://github.com/elastic/elasticsearch-net/pull/8587
* Regenerate client by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8600

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.0-preview.3...8.19.0-preview.4

## 8.19.0-preview.3

## What's Changed

* Fix `IndexName` ambiguity by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8556
* Preserve `BucketsPath` alias by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8561
* Regenerate client

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/9.0.5...9.0.6

## 8.19.0-preview.2

## What's Changed

* Update `Elastic.Transport` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8549
  * Fixes an issue that caused certain URL parameters to get serialized with incorrect casing

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.19.0-preview.1...8.19.0-preview.2

## 8.19.0-preview.1

## What's Changed

This release backports **all** improvements of the 9.0 client to the 8.x major version of the client.

> [!WARNING]
> Please note that some of the changes in this release are breaking!

For a complete list of improvements in this release, have a look at the 9.0.0 [release notes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet#elasticsearch-net-client-900-release-notes) and [breaking changes](https://www.elastic.co/docs/release-notes/elasticsearch/clients/dotnet/breaking-changes#elasticsearch-net-client-900-breaking-changes) to learn about all breaking changes.

---

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.18.0...8.19.0-preview.1

## 8.18.3

## What's Changed

* Fix `KeyValuePairConverter` by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8579

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.18.2...8.18.3

## 8.18.2

## What's Changed

* Increase `MaxDepth` to 512 for internal request/response type serializer by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8573
* Allow `KeyValuePairConverter` to work with non `IUrlParameter` keys by @​flobernd in https://github.com/elastic/elasticsearch-net/pull/8568

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.18.1...8.18.2

## 8.18.1

## What's Changed

* Fix (de-)serialization of `SnapshotShardFailure.ShardId`
* Various specification-induced bug fixes and improvements

**Full Changelog**: https://github.com/elastic/elasticsearch-net/compare/8.18.0...8.18.1

Commits viewable in [compare view](https://github.com/elastic/elasticsearch-net/compare/8.18.0...9.5.0).
</details>

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Elastic.Clients.Elasticsearch&package-manager=nuget&previous-version=8.18.0&new-version=9.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

---
updated-dependencies:
- dependency-name: Elastic.Clients.Elasticsearch
  dependency-version: 9.5.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Aug 21, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 21, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/nuget/src/ECommerce.Infrastructure/Elastic.Clients.Elasticsearch-9.5.0 branch August 21, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Behavioral regression: SearchResponse for expired PIT (HTTP 404) now reports IsValidResponse=true

1 participant