Releases: toptal/chewy
Releases · toptal/chewy
v7.3.0
7.3.0 (2023-04-03)
New Features
- #869: New strategy -
delayed_sidekiq
. Allow passingstrategy: :delayed_sidekiq
option toSomeIndex.import([1, ...], strategy: :delayed_sidekiq)
. The strategy is compatible withupdate_fields
option as well. ([@skcc321][]) - #879: Configure CI to check for ruby 3.2 compatibility. ([@konalegi][])
Changes
Bugs Fixed
- #856: Fix return value of subscribed_task_stats used in rake tasks. ([@fabiormoura][])
New Contributors
- @fabiormoura made their first contribution in #856
- @Ygnys made their first contribution in #867
Full Changelog: v7.2.7...v7.3.0
v7.2.7
v7.2.6
7.2.6
v7.2.5
New Features
- #827: Add
:lazy_sidekiq
strategy, that defers not only importing but alsoupdate_index
callback evaluation for created and updated objects. (@sl4vr) - #827: Add
:atomic_no_refresh
strategy. Like:atomic
, butrefresh=false
parameter is set. (@barthez) - #827: Add
:no_refresh
chain call toupdate_index
matcher to ensure import was called withrefresh=false
. (@barthez)
Bugs Fixed
- #835: Support keyword arguments in named scopes. (@milk1000cc)
v7.2.4
New Features
- #760: Replace parent-child mapping with a join field (@mrzasa)
Bugs Fixed
- #825: Fix mismatch argument names at update_mapping rake task (@AgeevAndrew)
- #832: Fix "cannot load such file --
i18n/core_ext/hash
" (@chrisandreae)
v7.2.3
New Features
- #801: Add the
track_total_hits
option to the query. (@milk1000cc) - #810: Use
unsafe_load
when loading config to support Psych 4. (@jduff) - #819: Add the
ignore_unavailable
option to the request. (@kolauren)
Changes
- #817: Show warning message during rake chewy:reset or chewy:upgrade if journaling is disabled. (@konalegi)
Bugs Fixed
- #816: Move query
preference
from body to query parameters. (@afg419)
v7.2.2
Changes
-
#800: Revert #787 progressbar feature to avoid performance degradation in parallel import (@rabotyaga)
-
#795: (Breaking) Change the Chewy::Search::Parameters::Order implementation to use Array (@jiajiawang):
- To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be
_script
. - Behaviour change of chained
order
calls.- e.g.
.order(_script: {a: 1}).order(_script: {b: 2})
- Before
{:sort=>[{"_script"=>{:b=>2}}]}
- After
{:sort=>[{"_script"=>{:a=>1}},{"_script"=>{:b=>2}}]}
- Before
- e.g.
- To allow multiple sorting options that may have the same key name. For example script based sorting whose key will always be
-
#654: Add helpers and matchers for testing (@Vitalina-Vakulchyk):
mock_elasticsearch_response
helpers both Rspec and Minitest - to mock elasticsearch responsemock_elasticsearch_response_sources
helpers both Rspec and Minitest - to mock elasticsearch response sourcesassert_elasticsearch_query
helper for Minitest - to compare request and expected query (returnstrue
/false
)build_query
matcher for Rspec - to compare request and expected query (returnstrue
/false
)
v7.2.1
New Features
- #469: Add ability to output the progressbar with
ENV['PROGRESS']
duringreset
rake tasks (@Vitalina-Vakulchyk):- for
rake chewy:reset
andrake chewy:parallel:reset
- progressbar is hidden by default, set
ENV['PROGRESS']
totrue
to display it
- for
Bugs Fixed
- #796: Fix clear scroll: pass
scroll_id
in body, as passing in path parameters is deprecated and can overflowhttp.max_initial_line_length
(@rabotyaga)
v7.0.1
Changes
- #792: Skip ES version memoization for search requests (@rabotyaga)
- The “total hits” counter is an integer for ES versions < 7 and an object (hash) for the versions starting from 7.0.0. Elasticsearch added a special option,
rest_total_hits_as_int
, to ease the upgrade, that could be appended to any request and results in the old “total hits” format. Unfortunately, this option is not recognized by ES versions prior to 7.0.0, which means that we have to check the version to decide if we need this option.
Normally Chewy does memoization of the current ES version, but this might be inappropriate for the upgrade, as the version changes live.
To handle that we have 2 versions of Chewy for the ES cluster upgrade stage during the migration from ES6 to ES7: 7.0.0 and 7.0.1. Version 7.0.0 does the memoization and version 7.0.1 requests the current version on every search request. - You can use the 7.0.0 version if it's fine for you to have an application restart immediately after ES cluster upgrade.
- If you're using the 7.0.1 version you might be interested in keeping the timeframe between updating to Chewy 7.0.1 and updating to Chewy 7.1 as small as possible, as version 7.0.1 skips ES version memoization for search requests to help dynamically detect ES version. This leads to an extra version request on each search request, i.e. could affect the overall performance/latency of the search and a load of ES cluster.
- The “total hits” counter is an integer for ES versions < 7 and an object (hash) for the versions starting from 7.0.0. Elasticsearch added a special option,