github elastic/elasticsearch-net 2.4.7

latest releases: 8.16.1, serverless-1.1.16, 8.16.0...
8 years ago

Behavioural Breaking Change

  • #2367 404s on Get<T>() and Delete<T>() (and async variants) now return .IsValid as true and deserialize the response, setting .Found. This aligns the behaviour of 2.x with 1.x and 5.x. The implications of this are:
  1. when issuing a delete, if the delete actually deletes a document or the document to delete does not exist, .IsValid is true
  2. when issuing a get where .IsValid is true, .Found should also be checked to determine if the document existed

Features

  • #2220 Backport BulkAll from #2162 and allow per document index operations on BulkAll.

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_hits on a nested type
  • #2370 Infer the index name and type name from T with Suggest<T>()
  • #2309 / #2310 When a ReindexOnServerResponse comes 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_scan to highlight fields
  • #2373 Fix script serialization when performing bulk updates
  • #2357 Correct Script serialization on bulk update operation
  • #2331 Fix SuffixExpressionVisitor to 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 Took field was incorrectly mapped as an int value on some responses, instead of long. 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; Took will also contain the value and for values greater than int, Took will be int.MaxValue. Took is marked with Obsolete attribute to highlight this to client consumers and Took is mapped as long in NEST 5.x. thanks @maeserichar 👍

Deprecations and Removals

  • #2346 Mark properties removed in 5.0 with ObsoleteAttribute
  • #2297 Mark MissingQuery with ObsoleteAttribute as removed in 5.0
  • #2293 Mark IndexName on property mappings with ObsoleteAttribute as removed in 5.0

View the full list of issues and PRs

Don't miss a new elasticsearch-net release

NewReleases is sending notifications on new releases.