Releases: elastic/elasticsearch-net
5.3.0
Features & Enhancements
- #2647 Major improvements for working with server and client certificates!
- #2619 Added ability to filter nodes from sniffing via
NodePredicate
onIConnectionPool
- #2632
AutoMap()
will now map overridden/hidden properties - #2602 Index Settings: support for partitioning with custom routing
- #2604 Analyze API: support for
position_length
- #2621 Aggregations: support for adjacency matrix aggregation
- #2596 Search: support for field collapsing
- #2592 Search: support for unified highlighter (5.3.0+)
Bug Fixes
- #2624 Multiple fixes to the query profiler API
- #2643 Fixed a date parsing issue when using covariant search
- #2644 Fixed memory leak when using
BulkAll
(TY @sergii-sakharov !) - #2688 Added workaround for specifying a size with multi term rewrite
- #2682, #2676 Fix issues around the
include
andexclude
options of theterms
andsignificant_terms aggregations
- #2665 Add missing scripted upserts to bulk requests
- #2690 NRE in IndexSettingsConverter when merge policy isn't set
- #2685 Introduce EndOffset property on
AnalyzeToken
and deprecate misspeltEndPostion
Deprecations
- #2611 Deprecated
include_in_all
mapping property
5.2.0
Features & Enhancements
- #2591 Watcher: Added support for
NotExecutedAlreadyQueued
inActionExecutionState
- #2573 Added support for the new cluster allocation explain API response
- #2580 Return warning HTTP headers as deprecations on response
- #2579 Ingest: Added support for the
json
processor - #2577 Ingest: Added support for
ignore_missing
on theuser_agent
,geo_ip
, andattachment
processors - #2559 Ingest: Added support for the
user_agent
processor plugin - #2567 Analysis: Added support for the
synonym_graph
token filter - #2567 Analysis: Added support for normalizers in the analysis chain
- #2558 Analysis:
analysis_icu
plugin is now supported out of the box - #2557 Analysis: Added support for the
kuromoji
analysis plugin - #2572 Mappings: Added support the new range types
- #2575 Aggregations: Added support for terms aggregation partitioning
- #2550 Added additional
Fields
convenience overloads - #2544 Added constants for all supported date formats
Improved debugging
- #2425 Added the DebuggerDisplay attribute for all special types and mapping properties 🐛
- #2538 Added
EnableDebugMode()
toConnectionSettings
as a quick way to disable direct streaming and pretty print JSON responses to the debug output window. It also accepts an optional callback to perform when the request completes.
Bug Fixes
- #2581 Fix
MissingMethodException
when settingConnectionLimit
on Xamarin.Droid - #2564 Several xmldoc fixes; netstandard will now also ship with xmldocs 📄
- #2586, #2582 More resilient error parsing
- #2561 Fix
Missing
option on terms aggregation so that it can correctly be serialized to its field type - #2556
AutoMap()
now correctly respects ignored and renamed properties onConnectionSettings
- #2497
Time
did not support microseconds and nanoseconds properly - #2531 Using reserved aggregation tokens as keys now throws an exception
- #2546
ReindexOnServer()
was missing theremote
option - #2548 Multiple serialization fixes to suggesters, and added missing smoothing models to phrase suggester
- #2540 Fix
_count
with no body sending a POST instead of GET 🔢 - Fixed caching of mapping properties when running on Core CLR
- Core CLR http connection is now more defensive in how it queries the header collection
Deprecations
- #2562 Dedicated
Suggest()
is now deprecated in favor of suggest through_search
- #2573 Old cluster allocation explain properties are marked obsolete in favor of the new ones added in Elasticsearch 5.2
View the full list of issues and PRs
2.5.2
Enhancements
- #2536 Enable
.DisableDirectStreaming()
on a per-request basis. This is useful when wishing to ad-hoc capture requests and responses. - #2387 Support
geometrycollection
forgeo_shape
types and queries 🌐 - #2521 Improve DebugInformation with a string representation of
CausedBy
(ty @kirilyuro ) - #2510 Avoid unnecessary
DateTime
allocations (ty @niemyjski )
Bug fixes
- #2525 Fix spelling mistake in German Snowball Analyzer
- #2503 Implement deserialization for
TermsIncludeExclude
to allow search requests that include it to be deserialized
Deprecations
- #2506 Mark type level analyzers as obsolete. Will be removed in Elasticsearch 6.0.
Misc
- 18aa4dc Limit version compatibility of NEST 2.x to 2.x versions of Elasticsearch.Net
View the full list of issues and PRs
5.0.1
Enhancements
- #2532 Support
geometrycollection
forgeo_shape
types and queries 🌐 - #2521 Improve DebugInformation with a string representation of
CausedBy
(ty @kirilyuro ) - #2510 Avoid unnecessary
DateTime
allocations (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
TermVector
forTextProperty
- #2503 Implement deserialization for
TermsIncludeExclude
to 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
BufferSize
property onJsonNetSerializer
with 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.Decimal
types as C# POCO properties
Bug fixes
- #2479 Deserialize
"value_as_string"
for metric aggregations that return it - #2466 Deserialize attachment title when deserializing an
Attachment
type from_source
or field data - #2464 Add the
StringEnumConverter
toStringFielddataFormat
to 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 thebool
query DSL - #2496 Allow
SourceFiltering.Disable
to be set tofalse
. This is synonymous with the default, which is to return_source
in the response.
Misc
- #2488Tidy up TODOs and make the usage of
NotSupportedException
consistent across all internalJsonConverter
types. - #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
IndexName
andTypeName
types 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 theIObservable
s 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 abackPressureFactor
which controls the max amplification factor of running scrolls with the safe guard of:
searchSize * maxConcurrency * backPressureFactor >= bulkSize
-
#2451 Small Performance improvements
Introduce a
BufferSize
property onJsonNetSerializer
with 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
Attachment
type from_source
or field data - #2464 Add the
StringEnumConverter
toStringFielddataFormat
to always serialize as string. Introduce coding standard unit test to assert the converter is applied to all NEST enums - #2468 Favour
publish_address
when sniffing cluster state - #2467 Fix the virality of
&=
in thebool
query DSL
Misc
- #2456 Tidy up TODOs and #2460 make the usage of
NotSupportedException
consistent across all internalJsonConverter
types. - #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
enum
tostring
resolution - #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_all
ontoTypeMapping
-
#2420 Fix the way in which
HttpClient
are created when using theHttpConnection
on .NET Core. AHttpClient
was created based on a hashcode ofRequestData
that included a regression bug that caused multiple instances ofHttpClient
to be created. Now, forRequestData
where- RequestTimeout
- HttpCompression
- ProxyAddress
- ProxyUsername
- ProxyPassword
- DisableAutomaticProxyDetection
do not change, the same
HttpClient
instance will be used -
#2428 Add specific type for term vectors in
MutliTermVectorsResponse
instead of reusingTermVectorsResponse
-
#2422 Use
ScriptProcessorDescriptor
in the fluent API of ingest node -
#2440 Ensure that each part of the async pipeline for Desktop CLR
HttpConnection
can be cancelled correctly
Deprecations and Removals
- #1958 Allow exceptions late in the pipeline to bubble out as
UnexpectedElasticsearchClientException
e.g.ResolveException
that 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
enum
tostring
resolution - #2414 Add
Min
NestedScoreMode
Bug Fixes
-
#2431 Add
include_in_all
ontoTypeMapping
-
#2420 Fix the way in which
HttpClient
are created when using theHttpConnection
on .NET Core. AHttpClient
was created based on a hashcode ofRequestData
that included a regression bug that caused multiple instances ofHttpClient
to be created. Now, forRequestData
where- RequestTimeout
- HttpCompression
- ProxyAddress
- ProxyUsername
- ProxyPassword
- DisableAutomaticProxyDetection
do not change, the same
HttpClient
instance will be used -
#2142 Set the
ApiCall
details on eachTermVectorsResponse
in the collection of responses in aMultiTermVectorsResponse
-
#2440 Ensure that each part of the async pipeline for Desktop CLR
HttpConnection
can 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
IDictionary
that are not generice.g.
public class MyNonGenericDictionary : IDictionary