- Added new fields to telemetry measurements,
request_body_bytes
andresponse_body_bytes
, for logging the size of the request and response
- Added new
Snap.Indexes
utility functions to get and set mappings, settings and more (thanks @warmwaffles) - Added Elixir 1.17 to CI matrix
- Added
sort
field toSnap.Hit
struct - Added
routing
param toSnap.Bulk
actions - Added
get_mapping
andupdate_mapping
functions toSnap.Indexes
- Added
status
attribute to telemetry metadata, representing the HTTP status code of the response, if any
- Breaking change: changed the field names in
Snap.Bulk
actions to drop underscore prefix - Added support for pluggable JSON libraries. Continues to default to
Jason
, but you may see encoding/decoding performance improvements from switching toJsonrs
- Allowed
nil
for thetype
inSnap.Hit
as ElasticSearch >= 8 does not return this
- Enabled gzip compression in default HTTP adapter using
Accept-Heading
header, which speeds up large response objects
- Added
Snap.Document
for interacting with individual documents - Added
count/3
toSnap.Search
for performing counts with or without a query - Added support for index namespacing to isolate different Snap application, environments and even process from seeing each other's indexes - see
Snap.Cluster.Namespace
andSnap.Test
for details
- Upgrade
finch
, which allows use ofcastore
1.0 - Set minimum Elixir version to 1.12
- Add a high level interface for the Multi Search API
- Changed
inner_hits
to beSnap.Hits
struct to make it consistent with thehits
at the top level - Added support for
suggest
(thanks @maennchen) - Relaxed telemetry dependency to allow the use of 0.4 as well as 1.0 (thanks @dershodan)
- Added support for modular HTTP client adapters, allowing mock HTTP clients in a test environment (thanks @jotaviobiondo)
- Added extra fields to
Snap.Aggregation
(thanks @megalithic)
- Return
Snap.HTTPError
when ElasticSearch returns an error HTTP status without any accompanying JSON - Expose
inner_hits
field onSnap.Hit
struct
- Accept
conn_opts
config options to configure the underlying HTTP transport (thanks @danielxvu)
- Update
telemetry
dependency to 1.0
- Allow extra options on
Snap.Bulk.perform/4
which are passed into the underlying request - Added
matched_queries
andhighlight
fields on theSnap.Hit
struct.
- Added the
host
andport
to the Telemetry metadata.
- Drop the underscore from the response struct keys, as it's just annoying to work with.
- Added
Snap.Search
to wrap making searches and parsing the response into structs.
- Fixed behaviour of
max_errors
when it's set to0
.
- Added support for an optional
max_errors
parameter inSnap.Bulk.perform
, which aborts the operation if the number of errors accumulated exceedes this count.
- Pass extra opts, such as
pipeline: "foo"
inSnap.Bulk.perform
to the Bulk API endpoint.
- Added support in
Snap.Auth.Plain
for defining the username and password in the configured URL.
- Introduce
Snap.BulkError
to wrap a list of errors produced fromSnap.Bulk
.
- Documentation formatting fix.
- First release.