Releases: elastic/elasticsearch-net
5.0.1
Enhancements
- #2532 Support
geometrycollectionforgeo_shapetypes and queries 🌐 - #2521 Improve DebugInformation with a string representation of
CausedBy(ty @kirilyuro ) - #2510 Avoid unnecessary
DateTimeallocations (ty @niemyjski )
Bug fixes
- #2525 Fix spelling mistake in German Snowball Analyzer
- #2516 Allow uppercase letters where index names are passed. Aliases still allow uppercase letters
- #2513 Expose
TermVectorforTextProperty - #2503 Implement deserialization for
TermsIncludeExcludeto allow search requests that include it to be deserialized
Deprecations
- #2506 Mark type level analyzers as obsolete. Will be removed in next major version of Elasticsearch.
View the full list of issues and PRs
1.9.2
2.5.1
Enhancements
-
#2484 Limit the number of concurrent connections on .NET Core, similar to Desktop CLR.
-
#2451 Small Performance improvements
Introduce a
BufferSizeproperty onJsonNetSerializerwith a default size of 1024 to use when writing json to the request stream. Performance tests as part of #1899 indicate this to be a good compromise buffer size for performance throughput and bytes allocated. -
#2495 Add important admonition (end of Simple Automapping section) to the documentation about the use of
System.Decimaltypes as C# POCO properties
Bug fixes
- #2479 Deserialize
"value_as_string"for metric aggregations that return it - #2466 Deserialize attachment title when deserializing an
Attachmenttype from_sourceor field data - #2464 Add the
StringEnumConvertertoStringFielddataFormatto always serialize as string. Introduce coding standard unit test to assert the converter is applied to all NEST enums - #2487 Fix the virality of
&=in theboolquery DSL - #2496 Allow
SourceFiltering.Disableto be set tofalse. This is synonymous with the default, which is to return_sourcein the response.
Misc
- #2488Tidy up TODOs and make the usage of
NotSupportedExceptionconsistent across all internalJsonConvertertypes. - #2486 Generate asciidoc files as part of the build
View the full list of issues and PRs
5.0.0
GA release of NEST and Elasticsearch.Net 5.0 🎉
A huge thank you to the community who kicked the tires on the 5.0 prereleases that we've been putting out since April and provided us with invaluable feedback 🖖
Check out the blog post on the NEST 5.0 release that highlights some of the main features as well as take a look at the 2.x -> 5.x Breaking Changes for NEST and Breaking Changes for Elasticsearch.Net.
Features
- #2454 Add Support for
CreateRequest<T>. This can be used to create a document of a given type in a given index with a given id, with optimistic concurrency control. See https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-index_.html#operation-type for more details - #2443 Add
ScrollAll()helper method
Enhancements
-
#2473 Limit the number of concurrent connections on .NET Core, similar to Desktop CLR.
-
#2457 Use
IndexNameandTypeNametypes for Bulk*Many requests -
#2459 Add type to set index auto expand replica setting
-
#2450 Add metadata for Security roles
-
#2462
ReindexAll()improvementsReindexAll()is now composed over theIObservables fromScrollAll()andBulkAll(), taking advantage of the concurrency models in each.Since the rate at which the scrolls produces far exceeds the rate at which we can consume them through bulks
ReindexAll()also implements a producer/consumer rate limiter. This is controlled by abackPressureFactorwhich controls the max amplification factor of running scrolls with the safe guard of:
searchSize * maxConcurrency * backPressureFactor >= bulkSize
-
#2451 Small Performance improvements
Introduce a
BufferSizeproperty onJsonNetSerializerwith a default size of 1024 to use when writing json to the request stream. Performance tests as part of #1899 indicate this to be a good compromise buffer size for performance throughput and bytes allocated. -
#2480 Allow target document type to be different from source document type when performing reindex
Bug fixes
- #2479 Deserialize
"value_as_string"for metric aggregations that return it - #2466 Deserialize attachment title when deserializing an
Attachmenttype from_sourceor field data - #2464 Add the
StringEnumConvertertoStringFielddataFormatto always serialize as string. Introduce coding standard unit test to assert the converter is applied to all NEST enums - #2468 Favour
publish_addresswhen sniffing cluster state - #2467 Fix the virality of
&=in theboolquery DSL
Misc
- #2456 Tidy up TODOs and #2460 make the usage of
NotSupportedExceptionconsistent across all internalJsonConvertertypes. - #2470 Add test collection filtering when running tests from the command line.
View the full list of issues and PRs
5.0.0-rc4
Features
- #2164 Allow
Reindex()helper to reindex into an existing index - #2436 Add support for Sliced Scrolls
Enhancements
- #2430 Do not instantiate
QueryContainerDescriptor<T>unneccessarily - #2389 Add support for
UpdateMany()in the bulk API - #2418 Faster
enumtostringresolution - #2166 Allow
DisableDirectStreaming()on a per request basis - #2336 Allow the key of a bucket aggregation to be read as any type; previously, it was always deserialized to
string.
Bug Fixes
-
#2431 Add
include_in_allontoTypeMapping -
#2420 Fix the way in which
HttpClientare created when using theHttpConnectionon .NET Core. AHttpClientwas created based on a hashcode ofRequestDatathat included a regression bug that caused multiple instances ofHttpClientto be created. Now, forRequestDatawhere- RequestTimeout
- HttpCompression
- ProxyAddress
- ProxyUsername
- ProxyPassword
- DisableAutomaticProxyDetection
do not change, the same
HttpClientinstance will be used -
#2428 Add specific type for term vectors in
MutliTermVectorsResponseinstead of reusingTermVectorsResponse -
#2422 Use
ScriptProcessorDescriptorin the fluent API of ingest node -
#2440 Ensure that each part of the async pipeline for Desktop CLR
HttpConnectioncan be cancelled correctly
Deprecations and Removals
- #1958 Allow exceptions late in the pipeline to bubble out as
UnexpectedElasticsearchClientExceptione.g.ResolveExceptionthat can happen within the transport when serializing to json.
View the full list of issues and PRs
2.5.0
Features
- #2164 Allow
Reindex()helper to reindex into an existing index - #2413 Implement Watcher APIs 👀
Enhancements
- #2430 Do not instantiate
QueryContainerDescriptor<T>unneccessarily - #2389 Add support for
UpdateMany()in the bulk API - #2418 Faster
enumtostringresolution - #2414 Add
MinNestedScoreMode
Bug Fixes
-
#2431 Add
include_in_allontoTypeMapping -
#2420 Fix the way in which
HttpClientare created when using theHttpConnectionon .NET Core. AHttpClientwas created based on a hashcode ofRequestDatathat included a regression bug that caused multiple instances ofHttpClientto be created. Now, forRequestDatawhere- RequestTimeout
- HttpCompression
- ProxyAddress
- ProxyUsername
- ProxyPassword
- DisableAutomaticProxyDetection
do not change, the same
HttpClientinstance will be used -
#2142 Set the
ApiCalldetails on eachTermVectorsResponsein the collection of responses in aMultiTermVectorsResponse -
#2440 Ensure that each part of the async pipeline for Desktop CLR
HttpConnectioncan be cancelled correctly
View the full list of issues and PRs
5.0.0-rc3
Bug Fixes
- #2412 Fix a number of dictionary serialization issues
A recent change did not handle a number of dictionary serialization cases including
-
types that implement
IReadOnlyDictionary<TKey,TValue>e.g.
public class MyReadOnlyDictionary<TKey,TValue> : IReadOnlyDictionary<TKey,TValue> -
types that implement
IDictionary<TKey, TValue>e.g.
public class MyDictionary<TKey,TValue> : IDictionary<TKey,TValue> -
non-generic types that inherit a closed generic dictionary type
e.g.
public class MyDictionary : Dictionary<string,object> -
types that implement
IDictionarythat are not generice.g.
public class MyNonGenericDictionary : IDictionary
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