-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Releases: elastic/elasticsearch-net
9.2.0
9.1.12
8.19.11
9.1.11
9d58555 What's Changed
- Allow modification of
RequestConfigurationforBulkRequestby @flobernd in #8741 - Fix floating point serialization for NETFRAMEWORK builds by @flobernd in #8742
- Add implicit conversion operators for handcrafted descriptors by @flobernd in #8743
- Regenerate client by @flobernd in #8755
- Allow keyed buckets for
FiltersAggregationandApiFiltersAggregation
- Allow keyed buckets for
Full Changelog: 9.1.10...9.1.11
Assets 2
8.19.10
325748b What's Changed
- Allow modification of
RequestConfigurationforBulkRequestby @flobernd in #8741 - Fix floating point serialization for NETFRAMEWORK builds by @flobernd in #8742
- Add implicit conversion operators for handcrafted descriptors by @flobernd in #8743
- Regenerate client by @flobernd in #8755
- Allow keyed buckets for
FiltersAggregationandApiFiltersAggregation
- Allow keyed buckets for
Full Changelog: 8.19.9...8.19.10
Assets 2
9.1.10
bb47ea7 What's Changed
Full Changelog: 9.1.9...9.1.10
Assets 2
8.19.9
33f13f4 What's Changed
Full Changelog: 8.19.8...8.19.9
Assets 2
9.1.9
03f92c0 What's Changed
- Switch to custom
SafeSkip()method that works with partial JSON blocks by @flobernd in #8720- Improves compatibility in certain streaming scenarios
Full Changelog: 9.1.8...9.1.9
Assets 2
8.19.8
c5bea54 What's Changed
- Switch to custom
SafeSkip()method that works with partial JSON blocks by @flobernd in #8720- Improves compatibility in certain streaming scenarios
Full Changelog: 8.19.7...8.19.8
Assets 2
9.1.8
81cebf5 What's Changed
- Regenerate client by @flobernd in #8707
- Regenerate client by @flobernd in #8711
- Improves usability of
CompositeAggregation(see #8704)
- Improves usability of
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) { // ... } }} } ] }} } }; // 9.1.8 and above var request = new SearchRequest { Aggregations = new Dictionary<string, Aggregation> { { "my_composite", new CompositeAggregation { Sources = [ new KeyValuePair<string, CompositeAggregationSource>( "my_terms", // Implicit conversion from `CompositeTermsAggregation` to `CompositeAggregationSource`. new CompositeTermsAggregation { // ... } ), new KeyValuePair<string, CompositeAggregationSource>( "my_histo", // Implicit conversion from `CompositeHistogramAggregation` to `CompositeAggregationSource`. new CompositeHistogramAggregation(0.5) <2> { // ... } ) ] }} } };
In addition, this change allows optimized Fluent syntax to be generated, which ultimately avoids a previously existing ambiguity:
// 9.1.7 and below var descriptor = new SearchRequestDescriptor() .Aggregations(aggs => aggs .Add("my_composize", agg => agg .Composite(composite => composite // This is the `params` overload that initializes the `Sources` collection with multiple entries. .Sources( // Add dictionary item 1 that contains a single `Terms` aggregation entry. x => x.Add("my_terms", x => x.Terms(/* ... */)), // Add dictionary item 2 that contains a single `Histogram` aggregation entry. x => x.Add("my_histo", x => x.Histogram(/* ... */)) <3> ) ) ) ); // 9.1.8 and above var descriptor = new SearchRequestDescriptor() .Aggregations(aggs => aggs .Add("my_composize", agg => agg .Composite(composite => composite .Sources(sources => sources .Add("my_terms", x => x.Terms(/* ... */)) .Add("my_histo", x => x.Histogram(/* ... */)) ) ) ) );
The old syntax was tricky because the 9.1.8 example also compiled successfully, but the .Add referred to the first dictionary both times. This ultimately resulted in a list with only one dictionary, which had multiple entries, and thus an invalid request.
Full Changelog: 9.1.7...9.1.8