Changelog
View Sourcev1.9.5 (2026-07-30)
- Bug fixes:
- Fixed a
CaseClauseErrorinElasticsearchEx.Streamerwhen streaming withkeys_as_atoms: trueordeserialize: true: since v1.9.3 the options were forwarded to the requests made by the Streamer, whose responses are expected to keep their raw string keys. The Streamer now consumes raw responses everywhere (point-in-time management, hits navigation,search_afterextraction) and applies these options only to the documents yielded to the caller
- Fixed a
v1.9.4 (2026-07-29)
- Bug fixes:
- Fixed the files included in the Hex package: added
README.md,CHANGELOG.md,LICENSE.txtand.formatter.exs
- Fixed the files included in the Hex package: added
v1.9.3 (2026-07-29)
Changes:
- Added support for
Reqv0.7: the request no longer includes a body when there is none, preventingGETrequests from being changed intoPOSTrequests byReq - Wrapped the URL query parameters into the
:paramsoption across theElasticsearchEx.API.Cat,ElasticsearchEx.API.SearchandElasticsearchEx.Streamermodules - Changed
ElasticsearchEx.Streamerto forward the options (:cluster,:headers,:req_opts) to the point-in-time creation, deletion and search requests
- Added support for
Bug fixes:
- Fixed a typo in the application supervisor preventing the
:time_to_liveconfiguration from being read byElasticsearchEx.MappingsCacher - Fixed a type checker warning on Elixir 1.20 in
ElasticsearchEx.API.Search
- Fixed a typo in the application supervisor preventing the
Chores:
- Updated the dependencies
- Updated the CI matrix: added Elixir 1.20/Erlang 29 and Elasticsearch 9.x, dropped Erlang 24
- Fixed the tests for Elasticsearch 9.x and the lazy
ElasticsearchEx.MappingsCacher
v1.9.2 (2025-12-11)
- Changes:
- Removed custom
uri_append_path/2implementation for Elixir version < 1.15 - Added option to
MappingsCacherto lazy load the mappings when starting
- Removed custom
v1.9.1 (2025-06-17)
- Changes:
- Removed the option to specify custom mapper
- Wrapped the options
:deserializeand:keys_as_atomsin a key:[deserialize: true, keys_as_atoms: true] - Fixed an issue where the response wasn't fully converted with keys as atoms
v1.9.0 (2025-06-13)
- Changes:
- Added an option
deserialize: truetoElasticsearchEx.Client.request/4to deserialize the documents - Added an option
keys: :atomstoElasticsearchEx.Client.request/4to return aMapwith keys asatoms - Added a GenServer to cache the mappings based on the index name.
- Added an option
v1.8.5 (2025-05-23)
Chores:
- Upgraded Elixir and Erlang development version to 1.15.8 and 25.3.2.21
Bug fixes:
- Ensure the exception to be generated independently of the map keys being atoms or strings
v1.8.4 (2025-04-18)
- Chores:
- Upgraded Elixir requirement to Elixir 1.15
- Updated development dependencies
- Fixed Credo warning
- Updated CI matrix to support latest versions
v1.8.3 (2025-02-03)
- Changes:
- Fixed an issue with Date values being
nil
- Fixed an issue with Date values being
v1.8.2 (2024-12-23)
- Changes:
- Removed compilation dependency
v1.8.1 (2024-12-20)
- Changes:
- Added support for Elixir 1.18
- Dropped support for Elixir 1.13
v1.8.0 (2024-10-31)
- Changes:
- Renamed the modules from
ElasticsearchEx.ApitoElasticsearchEx.API - Added JSON as default format for the CAT operations
- Renamed the modules from
v1.7.2 (2024-10-31)
- Changes:
- Updated dependencies
v1.7.1 (2024-06-30)
- Bug fixes:
- Fixed a bug on
ElasticsearchEx.Sharderwhere 0 was excluded from valid number
- Fixed a bug on
v1.7.0 (2024-06-13)
New features:
- Added support for Elixir 1.17.0 and Erlang 27.0
- Added a module
ElasticsearchEx.Documentto host a document from Elasticsearch
Changes:
- Updated dependencies
- Fixed
Reqdeprecations
v1.6.0 (2024-05-15)
- New features:
- Added a module
ElasticsearchEx.Serializerto serialize document sources - Added a module
ElasticsearchEx.Deserializerto deserialize document sources
- Added a module
v1.5.0 (2024-05-09)
- Changes:
- Added variants for
ElasticsearchEx.Api.Search.search/3 - Reworked some guards
- Added variants for
ElasticsearchEx.search/3 - Added
ElasticsearchEx.Api.Featuresmodule - Added variants for
ElasticsearchEx.Api.Search.multi_search/3 - Added variants for
ElasticsearchEx.Api.Search.async_search/3 - Added variants for
ElasticsearchEx.Api.Search.create_pit/3 - Added variants for
ElasticsearchEx.Api.Search.field_capabilities/3 - Added variants for
ElasticsearchEx.Api.Search.search_template/3 - Added variants for
ElasticsearchEx.Api.Search.multi_search_template/3 - Added variants for
ElasticsearchEx.Api.Search.render_search_template/3 - Added
ElasticsearchEx.Sharderexperimental module - Added
ElasticsearchEx.Streamerexperimental module - Updated some development dependencies
- Added variants for
v1.4.0 (2024-04-04)
Breaking Changes:
Replace the key
http_optsbyreq_optsChanges:
- Replaced
:any_httpby:req,Reqoffers the ability to provide custom:adapter - Removed the dependency
bypass
- Replaced
Bug fixes:
- Fixed a bug on
ElasticsearchEx.Api.Search.create_pid/2with empty body - Fixed a bug on
ElasticsearchEx.Stream.stream/3where an extra HTTP call was made at the end of theStream
- Fixed a bug on
v1.3.0 (2024-04-04)
New features:
- Added
ElasticsearchEx.Streammodule to stream documents
- Added
Changes:
- Removed extra
is_list(opts)from the API because it's already checked in the HTTP client
- Removed extra
Bug fixes:
- Fixed a bug on
ElasticsearchEx.Api.Search.search/2to allowindexto benil
- Fixed a bug on
v1.2.0 (2024-04-04)
- New features:
- Added
ElasticsearchEx.Api.Info.xpack/1 - Added
ElasticsearchEx.Api.Usage.xpack/1
- Added
v1.1.0 (2024-04-04)
- New features:
- Added
ElasticsearchEx.Api.Cat.aliases/2 - Added
ElasticsearchEx.Api.Cat.allocation/2 - Added
ElasticsearchEx.Api.Cat.anomaly_detectors/2 - Added
ElasticsearchEx.Api.Cat.component_templates/2 - Added
ElasticsearchEx.Api.Cat.count/2 - Added
ElasticsearchEx.Api.Cat.data_frame_analytics/2 - Added
ElasticsearchEx.Api.Cat.datafeeds/2 - Added
ElasticsearchEx.Api.Cat.fielddata/2 - Added
ElasticsearchEx.Api.Cat.health/2 - Added
ElasticsearchEx.Api.Cat.indices/2 - Added
ElasticsearchEx.Api.Cat.master/1 - Added
ElasticsearchEx.Api.Cat.nodeattrs/1 - Added
ElasticsearchEx.Api.Cat.nodes/1 - Added
ElasticsearchEx.Api.Cat.pending_tasks/1 - Added
ElasticsearchEx.Api.Cat.plugins/1 - Added
ElasticsearchEx.Api.Cat.recovery/2 - Added
ElasticsearchEx.Api.Cat.repositories/1 - Added
ElasticsearchEx.Api.Cat.segments/2 - Added
ElasticsearchEx.Api.Cat.shards/2 - Added
ElasticsearchEx.Api.Cat.snapshots/2 - Added
ElasticsearchEx.Api.Cat.tasks/1 - Added
ElasticsearchEx.Api.Cat.templates/2 - Added
ElasticsearchEx.Api.Cat.thread_pool/2 - Added
ElasticsearchEx.Api.Cat.trained_models/1 - Added
ElasticsearchEx.Api.Cat.transforms/2*
- Added
v1.0.0 (2024-04-03)
Breaking Changes:
Changed the signatures of the functions to have dedicated arguments alongside options.
New features:
- Added
ElasticsearchEx.Api.Document.Source.get/3 - Added
ElasticsearchEx.Api.Document.Source.exists?/3 - Added
ElasticsearchEx.Api.Document.get_ids/3 - Added
ElasticsearchEx.Api.Document.get_docs/3 - Added
ElasticsearchEx.Api.Document.multi_get/3 - Added
ElasticsearchEx.Api.Search.explain/4 - Added
ElasticsearchEx.Api.Search.field_capabilities/3 - Added
ElasticsearchEx.Api.Search.profile/3 - Added
ElasticsearchEx.Api.Search.rank_evaluation/3 - Added
ElasticsearchEx.Api.Search.search_shards/2 - Added
ElasticsearchEx.Api.Search.validate/3 - Added
ElasticsearchEx.Api.Search.search_template/3 - Added
ElasticsearchEx.Api.Search.multi_search_template/3 - Added
ElasticsearchEx.Api.Search.render_search_template/3 - Added
ElasticsearchEx.Api.Search.search_vector_tile/6
- Added
Changes:
- Rewrote functions to extract arguments from options:
ElasticsearchEx.Api.Document.index/4ElasticsearchEx.Api.Document.create/4ElasticsearchEx.Api.Document.get/3ElasticsearchEx.Api.Document.exists?/3ElasticsearchEx.Api.Document.update/4ElasticsearchEx.Api.Document.delete/3ElasticsearchEx.Api.Search.search/3ElasticsearchEx.Api.Search.multi_search/3ElasticsearchEx.Api.Search.async_search/3ElasticsearchEx.Api.Search.get_async_search/2ElasticsearchEx.Api.Search.get_async_search_status/2ElasticsearchEx.Api.Search.delete_async_search/2ElasticsearchEx.Api.Search.create_pit/2ElasticsearchEx.Api.Search.close_pit/2
- Rewrote functions to extract arguments from options:
v0.6.2 (2024-04-01)
- Changes:
- Updated the dependencies
- Updated Erlang/Elixir/Elasticsearch versions in the testing matrix
v0.6.1 (2023-12-28)
- Changes:
- Removed an option from the package preventing Dialyzer to work properly when it's used as dependency
v0.6.0 (2023-12-28)
New features:
- Delegated
ElasticsearchEx.index/2
- Delegated
Changes:
- Renamed the modules to remove the scope (tests are untouched)
- Added more tests
- Updated the dependency
any_httpto get rid of the issue with Dialyzer
Bug fixes:
- Fixed a bug on
ElasticsearchEx.Api.Document.update/2preventing to update.
- Fixed a bug on
v0.5.0 (2023-12-20)
New features:
- Added the ability to specify clusters which configure an endpoint, default headers and default options
Changes:
- Removed the function to make
PATCHrequest which isn't used by Elasticsearch - Removed most of the Dialyzer types causing issues
- Added all the tests for
ElasticsearchEx.Api.Search
- Removed the function to make
Bug fixes:
- Fixed an issue preventing to make
POSTrequest without body
- Fixed an issue preventing to make
v0.4.0 (2023-12-19)
- New features:
- Added new functions related to single document operations:
ElasticsearchEx.Api.Document.index/2ElasticsearchEx.Api.Document.create/2ElasticsearchEx.Api.Document.get_document/1ElasticsearchEx.Api.Document.get_source/1ElasticsearchEx.Api.Document.document_exists?/1ElasticsearchEx.Api.Document.source_exists?/1ElasticsearchEx.Api.Document.delete/1ElasticsearchEx.Api.Document.update/2
- Added new functions related to single document operations:
v0.3.1 (2023-12-19)
Changes:
- Added unit tests for:
ElasticsearchEx.Api.UtilsElasticsearchEx.ClientElasticsearchEx.ErrorElasticsearchEx.Ndjson
- Added unit tests for:
Bug fixes:
- Fixed the return value for the function
ElasticsearchEx.Client.head/2in case of error - Fixed the typespec for the function
ElasticsearchEx.Client.head/2in case of error - Added the ability to have no body to create an exception with
ElasticsearchEx.Error - Ensured the
ElasticsearchEx.Error.originalattribute is provided
- Fixed the return value for the function
v0.3.0 (2023-12-19)
New features:
- Added new functions related to
async_search:ElasticsearchEx.Api.Search.async_search/2ElasticsearchEx.Api.Search.get_async_search/2ElasticsearchEx.Api.Search.get_async_search_status/2ElasticsearchEx.Api.Search.delete_async_search/2
- Added new functions related to
pit:ElasticsearchEx.Api.Search.create_pit/1ElasticsearchEx.Api.Search.close_pit/2
- Added new functions related to
scroll:ElasticsearchEx.Api.Search.get_scroll/2ElasticsearchEx.Api.Search.clear_scroll/2
- Added a new module
ElasticsearchEx.Ndjsonto manipulate NDJSON - Added new functions related to
multi_search:ElasticsearchEx.Api.Search.multi_search/2
- Added new functions related to
terms_enum:ElasticsearchEx.Api.Search.terms_enum/2
- Added new functions related to
Changes:
- Added Github actions matrix to test different versions
- Changed the development versions of Elixir and Erlang to 1.13.4 and 24.3.4.14
v0.2.0 (2023-12-18)
New features:
- Delegated the function
ElasticsearchEx.Api.Search.search/2inElasticsearchExmodule - Added a
ElasticsearchEx.Errorexception to return an error.
- Delegated the function
Changes:
- Added Credo
- Added Dialyxir
v0.1.0 (2023-12-02)
- New features:
- Added the function
ElasticsearchEx.Api.Search.Core.search/2to search Elasticsearch
- Added the function