Releases: elastic/elasticsearch-net
5.0.0-rc2
This is the 2nd release candidate compatible with Elasticsearch 5.0. Many features and fixes went into this release, including support for all the Watcher APIs.
We will be finalizing the client ready for a GA release.
Features
- #2347 Support for the Watcher/Alerting API
- #2220 Allow per document index operations on
BulkAll - #2326 Add support for
search_after - #2327 Add support for matrix stats aggregation
- #2334 Add support for Script and DotExpander ingest pipeline processors
- #2335 Infer the index name and type name from
TinSuggest<T>() - #2407 All collections on response types are either
IReadOnlyCollection<T>andIReadOnlyDictionary<TKey, TValue>. Additionally, all collections should be initialized. - #2349 inferred mapping on CLR string properties now sets
ignore_aboveto 256 on thekeywordsub field, in line with dynamic mapping in Elasticsearch
Bug Fixes
- #2331 Fix
SuffixExpressionVisitorto allow multiple calls of.AppendSuffix() - #2340 Correct time taken calculation in Audit trail to be non-negative
- #2350 SniffResponse now correctly matches on IPv6 addresses
- #2357 Correct Script serialization on bulk update operation
- #2362 Add
max_boundary_scanto highlight fields - #2344 Add back default value on
.Dynamic()mapping - #2366 404s on
Get<T>()andDelete<T>()(and async variants) now return.IsValidastrueand deserialize the response, setting.Found. - #2365
.Scoreis nullable onHit<T>
Removal / deprecations
- #2342 Remove
LanguageonUpdateRequestand rename toLang, and correct script serialization - #2399 Remove
IDictionaryfromIIsADictionary<TKey,TValue>interface definition. This was confusing and needed only for one purpose in the codebase. This has been refactored to perform better.
View the full list of issues and PRs
2.4.7
Behavioural Breaking Change
- #2367 404s on
Get<T>()andDelete<T>()(and async variants) now return.IsValidastrueand deserialize the response, setting.Found. This aligns the behaviour of 2.x with 1.x and 5.x. The implications of this are:
- when issuing a delete, if the delete actually deletes a document or the document to delete does not exist,
.IsValidistrue - when issuing a get where
.IsValidis true,.Foundshould also be checked to determine if the document existed
Features
BulkAll is designed to parallelize bulk requests to Elasticsearch by iterating a lazily constructed collection of POCO types and partitioning into multiple concurrent bulk requests. It includes simple logic for automatic backoff of requests when documents failed to be indexed due to HTTP 429 response errors and retrying in a configurable number of times in such cases.
Enhancements
- #2371 / #2323 Include the nested identity when performing
inner_hitson anestedtype - #2370 Infer the index name and type name from
TwithSuggest<T>() - #2309 / #2310 When a
ReindexOnServerResponsecomes back as 400 status code, deserialize the response so that Failures is populated with more details for why things failed.
Bug Fixes
- #2362 Add
max_boundary_scanto highlight fields - #2373 Fix script serialization when performing bulk updates
- #2357 Correct Script serialization on bulk update operation
- #2331 Fix
SuffixExpressionVisitorto allow multiple calls of.AppendSuffix() - #2319 / #2321 Fix issue where field expressions were incorrectly cached when a dynamic value and a suffix expression were used
- #2308 the
Tookfield was incorrectly mapped as anintvalue on some responses, instead oflong. Since the type cannot be changed (it would break binary compatibility), another field has been introduced,TookAsLong, that will hold the value returned from Elasticsearch;Tookwill also contain the value and for values greater thanint,Tookwill beint.MaxValue.Tookis marked withObsoleteattribute to highlight this to client consumers andTookis mapped aslongin NEST 5.x. thanks @maeserichar 👍
Deprecations and Removals
- #2346 Mark properties removed in 5.0 with
ObsoleteAttribute - #2297 Mark
MissingQuerywithObsoleteAttributeas removed in 5.0 - #2293 Mark
IndexNameon property mappings withObsoleteAttributeas removed in 5.0
View the full list of issues and PRs
5.0.0-rc1
This is the Elasticsearch 5.0.0-rc1 compatible release.
Features
#2322 Mappings: Added support for half_float and scaled_float numeric datatypes
#2337 Updated datatype properties to align with ES 5.0 across the board
#2320 Added ability to supply local metadata to mapping properties TY @ejsmith
#2292 Allow implicit conversion from string[] to Types and Indices
Bug Fixes
#2209 Several improvements in some Query DSL edge cases
#2339 SniffingConnectionPool: Fixed response parsing of _nodes when sniffing cluster state
#2319 Fixed caching of field expressions that contained both variables and constants
#2310 ReindexOnServer: Correctly handle 400 responses
#2308 Fixed deserialization of responses that contain took, which was incorrectly typed to int. TY @maeserichar !
#2295 XML doc fix. TY @niemyjski !
#2242 #2269 Enhancements to serialization of DateTime
#2195 Query on PhraseSuggestCollate is now correctly typed to ITemplateQuery
Removal / deprecations
#2297 Removed deprecated MissingQuery
#2293 Removed deprecated IndexName
View the full list of issues and PRs
5.0.0-beta1
This is the Elasticsearch 5.0.0-beta1 compatible release.
Features
#2233 Support for get task API
#2228 Support for multi search template API
#2228 Support for shrink index API
#2226 Support for rollover index API
#2246 Support for disable/enable user APIs of the X-Pack security plugin
#2241 Support for field_masking_span query (TY @yevhen!)
#2198 HttpClientHandler can now be modified in a custom HttpConnection when running on .NET Core. This makes it possible to validate HTTPS certs by setting ServerCertificateValidationCallback.
#2197 & #2247 Introduced an improved approach to ModifyJsonSerializerSettings for overriding Json.Net serialization settings using ISerializerFactory instead (TY @jonyadamit !)
Bug Fixes & Enhancements
#2274 Fix NRE when deserializing a mutli-bucket aggregate with an empty buckets object
#2261 Add missing routing option to FieldLookup
#2209 & #2209 Several improvements in some edgecase query DSL scenarios
#2221 Fixed issue with using a sniffing connection pool where a thread could potentially become blocked resulting in a timeout exception (TY @lostllama)
#2219 Add missing conflicts option to reindex API
#2215 Add missing term vector filters
#2215 add missing metadata on IGetResponse<T> and IMultiHit<T>
#2169 Move analyze query string parameters to request body
#2194 Removed deprecated Alias on GetAliasRequest (use Name instead) and added back the GetAliasesPointingToIndex() helper method.
#2193 Add missing collate_match option to geo_shape queries (TY @HarveyWilliams !)
#2187 Add relation to geo_shape queries and contains to geo_shape relations
#2178 Add ability to specify a custom similarity using both the fluent and object iniitalizer syntax
2.4.6
Features
- #2112 Support
ReindexRethrottlewhen running against Elasticsearch 2.4.0, to allow throttling of longer running tasks such as Reindex and UpdateByQuery APIs. - #2231 Support
field_masking_spanqueries. Mapped toSpanFieldMaskingQueryto align with names of other span queries.
Enhancements
- #2279 Support overloaded
UpdateByQuery()fluent methods that infer Indices and Types from generic parameter typeT - #2247 Enable conveniently overriding
JsonSerializerSettingswithout the need to implement a custom serializer. Thanks for the PR @jonyadamit 👍
Bug Fixes
- #2261
FieldLookupnow includes aRoutingproperty. ty @seanwm - #2178 Fix support for custom similarities using
CustomSimilarityobject or.Custom()fluent method onSimilaritiesDescriptor - #2170 Resolve to the smallest whole time unit when working with
DateMathas it does not support fractional values. For example,TimeSpan.FromHours(25)will serialize to25has opposed to round to1dor fractional value1.04d. ty @emmekappa - #2209 Improve boolean combinatorial logic when dealing with bool queries with many clauses
- #2168 Mark
.HighlightsonSearchResponse<T>as obsolete, to be removed in 5.x. It's a leaky abstraction when searching over multiple types that contain the same document id for different types - this will throw an exception. Highlights can be enumerated using
foreach (var hit in searchResponse.HitsMetaData.Hits)
{
foreach (var highlight in hit.Highlights)
{
// do something with highlightHit
var highlightHit = highlight.Value;
}
}- #2125 Allow use of custom highlighters (expert level option).
HighlightFieldnow contains aCustomTypestring property that can be used to specify a custom highlighter. Core highlighters can still be specified usingTypeproperty. - #2119 Allow use of per field custom similarity (expert level option).
ElasticsearchPropertyAttributeBaseand associated mapping methods allow the use of a custom similiarity through aCustomSimilaritystring property (on attributes and mapping objects) and through the.Similairy(string)fluent mapping method. Core similarities can still be specified. - #2274 Fix
NullReferenceExceptionwhen deserializing a multi-bucket aggregation that contains an empty bucket. - #2263 Do not use
IsoDateTimeConverterto handleDateTimeOffset. Take a look at #2268 for howDateTimeandDateTimeOffsetare serialized within NEST.
1.9.1
Features
- #2231 Support
field_masking_spanqueries. Mapped toSpanFieldMaskingQueryto align with names of other span queries. Thanks for the PR @yevhen 👍
Bug Fixes
- #2229 Allow
filter_keysstring array to be specified on call toClearCache(). The rest api json schema spec incorrectly identified this type asbool - #2208 Use the specified
Formatwhen serializing dates withinRangeFilter - #2191 Correctly deserialize both json representations (string or array of strings) of stop words on analyzers
- #2188 Correctly deserialize templates that contain alias definitions
2.4.5
Features
- 383623e Large performance improvements to MultiGet and MultiSearch calls:
- Cache JsonContracts per ConnectionSettings. It is recommended to share a single instance of
ConnectionSettingswithin your application for this reason. - Cache Delegates per ConnectionSettings for constructing items in a MultiGetResponse
- Cache Delegates per ConnectionSettings for constructing items in a MultiSearchResponse
- Reuse Inferrer instance on ConnectionSettings to take advantage of cached data.
- Reduce complexity in
IUrlParameter.GetString()forIndexNameandTypeName
- Cache JsonContracts per ConnectionSettings. It is recommended to share a single instance of
Thanks to @antonyfrancis for raising this 👍
Bug Fixes
- fced23c Fix description for
refreshon Index operation
2.4.4
Bug Fixes
- #2197 Fixed instances where modified serialization settings or custom serializers were not being respected by introducing
ISerializerFactory. The old func based factory set onConnectionSettingsis now obsolete. (TY @tsliang and @mitchknife) - #2198
HttpClientHandlercan now be modified in a customHttpConnectionwhen running on .NET Core. This makes it possible to validate HTTPS certs by settingServerCertificateValidationCallback. - #2169 Analyze API parameters have been moved to the request body
- #2217 Added missing filter options to
ITermVectorFilter - #2213 Added missing meta fields to
IGetResponse<T>andIMultiHit<T> - #2219 Added missing
conflictsoption toReindexOnServer - #2221 Fixed issue with using a sniffing connection pool where a thread could potentially become blocked resulting in a timeout exception (TY @lostllama)
- #2223 Disabling
_sourcenow properly serializes asfalserather thanexclude: ["*"](TY @pathikdevani) - #2194 Deprecate Alias on
GetAlias()in favour ofName
2.4.3
Bug Fixes
- #2193 Add
collate_matchoption to the phrase suggester response (TY @HarveyWilliams !) - #2187 Add
relationandcontainstogeo_shapequeries - #2181 Add
os.cpu_precentto node stats response (TY @TheFireCookie !)
2.4.2
Bug Fixes
#2173 Fixed UpdateByQuery from incorrectly reporting successful responses
#2159 Deprecated misnamed Field() method on SuggestContextDescriptor in favor of Path()
#2150 Fixed gzip compression when running on .NET Core
#2152 ServerError on response now properly deserializes recursive error details
#2052 Fixed exception handling issues within SimpleJson