Releases: elastic/elasticsearch-net
5.6.1
This release bumps the JSON.NET dependency of NEST
to 11.x
(#3115)
Features:
- add SkipProperty to visitor to easily prevent certain properties from being AutoMapped #3001
- Add non-generic AutoMap overload (#2907)
- Add token_limit and force_unigrams to phrase suggest (#3112)
- Support slice in delete by query (#3014)
Additional bug fixes:
- fix #2884 make sure that error objects are deserialized as errors not as aliases, earlier in the 5.x series this was always a string
- Fix null reference exception for ExtendedBounds #2962
- ProperyNameJsonConverter and field resolver for propertyname was new'ing an Inferrer (#3030)
- fix #3019, converter should not nullify know keys in the base dictionary (#3046)
- fix #3017 add docvalues_fields to innerhits (#3045)
- fix on empty buckets (#3068)
- Deserialize aggregation metadata to Dictionary<string,object> (#3073)
- fix #3116 instances of gethashcode in equals implementation (#3117)
2.5.8
This marks the final 2.x
release for NEST
and Elasticsearch.NET
as Elasticsearch 2.4
EOL'ed 2018-02-28. We wont be doing any more 2.x
releases unless something absolutely critical pops up.
To sunset our 2.x
branch we have updated the JSON.NET
dependency to the latest greatest 11
🍰
Additional fixes:
- Deserialize aggregation metadata to Dictionary<string,object> (#3073)
6.0.1
It is recommended to update to 6.0.1 due to #3084.
Features & Enhancements
- #3076 Add non-generic Automap
Bug Fixes
- #3068 Don't throw an exception when deserializing an empty aggregation bucket. Thanks @Zyklop 👍
- #3073 Deserialize aggregation metadata to
Dictionary<string,object>
- #3084 Don't hide internal serialization errors when attempting to deserialize responses. Thanks @jonyadamit 👍
View the full list of issues and PRs
6.0.0
GA release of NEST and Elasticsearch.Net 6.0 🎉
A huge thank you to the community who kicked the tires on the 6.0 prereleases that we've been putting out and providing invaluable feedback 🖖
Check out the blog post on the NEST 6.0 release that highlights some of the main features within this major release.
Also check out 5.x -> 6.x breaking changes
Features
- #2979 exists responses no longer need a custom deserializer
- #2967 Keyed aggregations
- #2934 Allow mapping CLR types dynamically on Connection Settings
- #2939 Make retry for
BulkAll
pluggable - #2983 Split Time out into two types for Time values and Date Math expressions
- #3009 Auto routing
Enhancements
- #2355 Add missing properties to Error property on
ServerError
- #2683 Allow analysis components to be specified in Analyze API requests
- #2684 Support details when using
explain
on Analyze API - #2851 Add
phrase_limit
for FVH highlighting - #2879 Add settings to Rollover index requests
- #2890 Include classic similarity in index settings
- #2922 Allow non-string values for Sort
"missing"
field - #2938 Add support for normalizer on the Analyze API
Bug fixes
- #2828 Change
extended_bounds
type on Date Histogram aggregations. Thanks @FabienLavocat 👍 - #2847 Add
shard_min_doc_count
parameter on Significant Terms Aggregation. - #2849 Add
params
property tophrase_suggest_collate
. - #2921 Make terms aggregation order assignative rather than additive
- #2897 GetMany returns empty list after connection failure
- #2942 Azure repository missing constructor
- #2941 Ensure verbatim queries send an empty array
Misc
- #2948 MultiSearchServerError on SearchResponse is no longer needed
Removals
- #2933 Remove script file related APIs
View the full list of issues and PRs
2.5.7
Features & Enhancements
- #2886 Add
ReadSingleOrEnumerableJsonConverter
attribute to allow single common_words values to be deserialized - #2868 Adding sigma property to extended stats aggregation. thanks @jonyadamit 👍
- #2911 Set
HttpClientHandler.UseProxy=false
onDisableAutomaticProxyDetection==true
. thanks @codeh 👍 - #2943 Support non string values for
sort
missing value - #2829 Support
DateMath
forDateHistogram
ExtendedBounds
- #2847 Add
shard_min_doc_count
to Significant Terms Aggregation - #2851 Add
phrase_limit
to highlighting - #2968 Add additional sort options to Top Hits Aggregation
- #2965 Add
Params
toPhraseSuggestCollate
- #2924 / #2966 Include similarity in index settings
Bug Fixes
- #2893 Correct serialized property name on
AsciiFoldingTokenFilter
- #2930 Fix all instance of
ConfigureAwait(false)
- #2812 / #2941 Verbatim sends an empty array
- #2816 / #2942 Fix
AzureRepository
constructor
View the full list of issues and PRs
6.0.0-rc1
Introduction
The second release of the Elastic .NET packages, to address issues found by customers in the 6.0.0-beta1 release.
These packages are designed to be used in conjunction with Elasticsearch 6.x
Features & Enhancements
- #2997 Added another hook for properties of type object that need optionally flow through the source converter.
- #2995 Cannot serialize/deserialize document containing a JoinField without an ElasticClient/SourceSerializer on hand
- #2977 Add Params to PhraseSuggestCollate (forward port to master)
- #2971 Add version to PutTemplateRequest
- #2969 Add Settings, Aliases and Mappings to RollOverIndexRequest
- #2968 Add additional sort options to Top Hits Aggregation
- #2817 Setting
{dynamic_type}
as part of the mapping - #2804 BulkAll() retry configuration
Bug Fixes
- #2999 / #2991
type
onhas_parent
query should beparent_type
- #2992 Throw a better error message when Join<TParent, TChild>() is called multiple times with different children
- #2980 Fix/remaining custom converters
- #2183 Lazily resolve JsonSerializers in JsonNetSerializer
Deprecations
- #2993 Fix/6.1 deprecations
Misc
View the full list of issues and PRs
5.6.0
This is a large update to the 5.x version of the client! The REST API specs that are used to generate large parts of the client have been updated to 5.6.5.
This release includes all 32 of the Machine Learning APIs available within X-Pack 🤖 📈
Features & Enhancements
- #2856 Add Machine Learning APIs
- #2826 Add
SerialDifferencing()
to the.Aggs
aggregation helper onISearchResponse<T>
- #2847 Add
shard_min_doc_count
parameter for Significant Terms Aggregation - #2868 Add
sigma
property on ExtendedStatsAggregation - #2879 Include settings, aliases and mappings on RolloverIndexRequest
- #2880 and #2971 include version on PutIndexTemplateRequest and GetIndexTemplateResponse
- #2905 Add terminate_after to Count API
- #2911 Set
HttpClientHandler.UseProxy=false
to disable automatic proxy detection. thanks @codeh 👍 - #2943 Support non-string values for sort missing by introducing a
MissingValue
property. DeprecateMissing
withObsoleteAttribute
and fix in 6.x. - #2913 Allow all sort options on fluent lambda API of
TopHitsAggregation
- #2843 Add track_scores to
TopHitsAggregation
Bug Fixes
- #2818 and #2976 Several issues related to representations of
Time
within the client, including fractional units - #2828 and #2962 Support DateMath for DateHistogram ExtendedBounds by introducing an
ExtendedBoundsDateMath
property of typeExtendedBounds<DateMath>
- #2837 Added missing bool query filter visit on QueryWalker. thanks @jonyadamit 👍
- #2849 Add Params property to pass params to the collate query for PhraseSuggestCollate. Document not to use
Params
onITemplateQuery
, but copy Params over if used. - #2864 and #2878 Append
date_optional_time
to Format when Missing is specified - #2871 and #2872 Deserialize error property on
MultiGetResponse
items - #2890 and #2957 Include similarity in index settings and add
DFISimilarity
- #2893 Correct serialized property name for preserve_original on AsciiFoldingTokenFilter
- #2930 Do not capture synchronization context on async calls
- #2886 Handle deserialization for a single or array of common words on CommonGramsTokenFilter. thanks @awelburn 👍
- 9328a14 When pinging a node, use the
PingTimeout
for the request timeout. thanks @Vaibhav1192 👍 - #2812 When marking a terms query as
Verbatim
where the terms is an empty collection, serialize to an empty array - #2816 Add overloaded constructor for
AzureRepository
so thatGetRepository
does not throw - #2817 Allow setting
{dynamic_type}
as part of the mapping using.Generic()
Deprecations
- #2845 deprecate PreOffset and PostOffset and introduce Offset on
IHistogramAggregation
. thanks @jeroenkoknl 👍 - #2913 Deprecate
.Sort()
on fluent lambda API of Top Hits aggregation that allows only field sorting.
Misc
- 20b2606 Add documentation on how to configure JSON.Net Contract Converters
- #2831 #2865 Resolve JSON.Net version and next major version from Nest.csproj, to fix NU1603 Warnings. thanks @kwilliamssbs 👍
View the full list of issues and PRs
6.0.0-beta1
Introduction
These beta packages have been released in order to solicit feedback from users. Like any beta software it should not be used in a production environment, if you do so it is very much at your own risk and we will be unable to support you.
These packages are designed to be used in conjunction with Elasticsearch 6.x
We are, however, very keen to field any issues that you may have. If you come across a problem please open an issue. Please ensure your issue mentions the 6.0.0-beta1
label.
Major changes
Serialization
The Newtonsoft.Json
nuget dependency has been removed and the assembly has now been IL merged into the NEST assembly.
The reasons for this are two-fold:
- It simplifies the deployment for customers - no more dependancies to manage.
- It allows us to implement a specialised serialization pipeline in the future, without affecting users.
The Json.NET library has been completely internalized. All methods, properties, classes (etc) have been rewritten into the NEST assembly with internal
scope and namespaces moved over to NEST.Json
. It should not be possible to access any of the serialization functionality and it should coexist with Newtonsoft.Json
references in your project.
Serialization Extensions
The new NEST.JsonNetSerializer package enables you to write a custom serialization path for the types you index into Elasticsearch using Json.NET.
This creates a new extension point within NEST for the serialization of your types.
Single Type Per Index
It is now only possible to have a single type per index, this change is more heavily documented here.
If you have multiple types in an index you'll need to move to a single type per index solution. If you can not do that straight away you can opt in to multiple types, for the time being, by using mapping.single_type index settings.
new IndexSettings(new Dictionary<string, object> {
{ "mapping.single_type", "false" }
})
{
NumberOfShards = 2,
NumberOfReplicas = 0,
};
Breaking Changes
The breaking changes for Elasticsearch 5.x to 6.x are documented here and tracked here.
2.5.6
5.5.0
Features & Enhancements
- #2775 Add
remove_index
operation to Alias operations. - #2795 Add missing fields on
simple_query_string
query. - #2807 Add XPack security
role_mapping
API to map roles to users, and a token based access API. - #2807 The
matrix_stats
,sig_terms
andsampler_agg
have additional properties. - #2807 Update tests.default.yaml ES version to 5.5.0
- #2789 Add a
StickySniffingConnectionPool
- a new connection pool that combines the capabilities of theStickyConnectionPool
andSniffingConnectionPool
s, and allowing for the sorting of the Node collection to be defined externally. - #2781 Improved exception message when backpressure does not leave room for the producer to call
MoveNext()
. - #2781 Throw an exception when
Reindex()
produces just enough documents for a single bulk but leaves no slots to callMoveNext()
which would free up an awaiting task (fixes #2771). - #2779 Can now parse exponential notation for milliseconds time units.
Breaking Changes
- #2807
GetAlias
now return a 404 if you submit a query for e.ga
,b
,c
and only aliasa
was found (as per: elastic/elasticsearch#25043).
Bug Fixes
- #2791 Use serializer when deserializing
LazyDocument
toT
. - #2776 Ensure
CancellationTokenRegistration
is disposed of correctly. - #2780 Move
EnterReadLock()
outside oftry
block forSniffingConnectionPool
. - #2785 Several fixes related to HttpClient + .NET Core + Linux
Deprecations
- #2807
RefreshRequest
fieldsforce
andoperation_threading
have been removed from ES 5.x (as per: elastic/elasticsearch#25234) so have been patched in as noop to preserve binary compatibility. Will be removed in 6.0.